array

和为S的两个数字(剑指offer)

跟風遠走 提交于 2020-03-04 15:33:36
题目描述 输入一个递增排序的数组和一个数字S,在数组中查找两个数,是的他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。 输出描述: 对应每个测试案例,输出两个数,小的先输出。 1 class Solution { 2 public: 3 vector<int> FindNumbersWithSum(vector<int> array,int sum) { 4 int len = array.size(); 5 vector<int> vet; 6 int chengji = INT_MAX; 7 for (int i = 0; i < len; i++) 8 { 9 if (find(array.begin(),array.end(),sum - array[i]) != array.end()&&chengji>array[i] * (sum - array[i])) 10 { 11 vet.clear(); 12 chengji = array[i] * (sum - array[i]); 13 vet.push_back(array[i]); 14 vet.push_back(sum - array[i]); 15 } 16 } 17 return vet; 18 } 19 }; 来源: https://www.cnblogs.com

剑指offer——和为S的两个数字

北战南征 提交于 2020-03-04 15:14:44
题目链接:输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。 解题思路: 左右夹逼 1 import java.util.ArrayList; 2 public class Solution { 3 public ArrayList<Integer> FindNumbersWithSum(int [] array,int sum) { 4 ArrayList<Integer> res = new ArrayList<>(); 5 if(array==null || sum==0) 6 return res; 7 8 int i=0; 9 int j=array.length-1; 10 11 while(i<j) 12 { 13 if(array[i]+array[j]==sum) 14 { 15 res.add(array[i]); 16 res.add(array[j]); 17 return res; 18 } 19 else if(array[i]+array[j]<sum) 20 { 21 i++; 22 } 23 else{ 24 j--; 25 } 26 } 27 28 return res; 29 30 } 31 } 来源: https://www.cnblogs.com

[剑指offer]和为S的两个数字

六月ゝ 毕业季﹏ 提交于 2020-03-04 15:13:49
题目描述 输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。 输出描述: 对应每个测试案例,输出两个数,小的先输出。 题目链接:https://www.nowcoder.com/practice/390da4f7a00f44bea7c2f3d19491311b?tpId=13&tqId=11195&tPage=3&rp=3&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking package com.sunshine.OFFER66_SECOND; import org.junit.Test; import java.util.ArrayList; public class A42_FindNumbersWithSum { @Test public void test() { int[] arr = {1, 2, 3, 4}; ArrayList<Integer> arrayList = FindNumbersWithSum(arr, 5); arrayList.forEach(a -> System.out.print(a + " ")); ArrayList<Integer> arrayList1 =

5-剑指offer: 和为S的两个数字

无人久伴 提交于 2020-03-04 15:12:06
题目描述 输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。 输出描述: 对应每个测试案例,输出两个数,小的先输出。 代码: class Solution { public: vector<int> FindNumbersWithSum(vector<int> array,int sum) { vector<int> result; if (array.size() <2) return result; int left=0, right=array.size()-1; int num_a, num_b, product=array[right] * array[right]; bool valid = false; while(left < right) { if(array[left] + array[right] < sum) { left++; }else if(array[left] + array[right] > sum) { right--; } else if(array[left] + array[right] == sum && array[left] * array[right] < product) { num_a = array[left]; num_b = array

Js 图片轮播渐隐效果

点点圈 提交于 2020-03-03 21:39:18
1 <!DOCTYPE html> 2 <html xmlns="http://www.w3.org/1999/xhtml"> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 5 <title></title> 6 <style type="text/css"> 7 * { 8 margin:0px; 9 padding:0px; 10 } 11 li { 12 list-style: none; 13 } 14 /*example*/ 15 .example { 16 width:600px; 17 height:400px; 18 overflow:hidden; 19 position:relative; 20 margin:50px auto; 21 } 22 .example ol { 23 position: relative; 24 width: 120px; 25 height: 20px; 26 top: -30px; 27 left: 60px; 28 } 29 30 .example ol li { 31 float: left; 32 width: 10px; 33 height: 10px; 34 margin: 5px; 35

js中forEach,for in,for of循环的用法【转】

拜拜、爱过 提交于 2020-03-03 19:13:22
一、一般的遍历数组的方法: var array = [1,2,3,4,5,6,7]; for (var i = 0; i < array.length; i++) { console.log(i,array[i]); } 二、 用for in的方遍历数组 for(let index in array) { console.log(index,array[index]); }; 三、 forEach array.forEach(v=>{ console.log(v); }); array.forEach(function(v){ console.log(v); }); 四、 用for in不仅可以对数组,也可以对enumerable对象操作 var A = {a:1,b:2,c:3,d:"hello world"}; for(let k in A) { console.log(k,A[k]); } 五、 在ES6中,增加了一个for of循环,使用起来很简单 for(let v of array) { console.log(v); }; let s = "helloabc"; for(let c of s) { console.log(c); } 总结来说:for in总是得到对像的key或数组,字符串的下标,而for of和forEach一样,是直接得到值 结果for

剑指offer:035 数组中的逆序对 附:java实现

依然范特西╮ 提交于 2020-03-03 11:56:37
题目描述 数组中的逆序对 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007 思路: 归并排序 中的比较大小操作 恰好 可以 用于我们的题目; 例如 如果8 大于 6 则 8肯定大于123 如果7 大于6 7肯定大于 123 5小于6 则不统计 继续完成排序 java实现: //归并排序的变形 public class Solution { public int InversePairs(int [] array) { if(array==null||array.length==0) { return 0; } int[] copy = new int[array.length]; for(int i=0;i<array.length;i++) { copy[i] = array[i]; } int count = InversePairsCore(array,copy,0,array.length-1);//数值过大求余 return count; } private int InversePairsCore(int[] array,int[] copy,int low,int high) { if(low==high) {

42.和为S的两个数字(java)

给你一囗甜甜゛ 提交于 2020-03-03 04:40:29
题目描述 输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。 输出描述: 对应每个测试案例,输出两个数,小的先输出。 解题思路 数列满足递增,设两个头尾两个指针i和j, 若ai + aj == sum,就是答案(相差越远乘积越小) 若ai + aj > sum,aj肯定不是答案之一(前面已得出 i 前面的数已是不可能),j -= 1 若ai + aj < sum,ai肯定不是答案之一(前面已得出 j 后面的数已是不可能),i += 1 import java.util.ArrayList; public class Solution { public ArrayList<Integer> FindNumbersWithSum(int [] array,int sum) { ArrayList<Integer> list = new ArrayList<>(); int i=0,j=array.length-1; while(i<j){ if(array[i]+array[j]==sum){ list.add(array[i]); list.add(array[j]); return list; //第一个发现的数一定是最小的 }else if(array[i]+array[j]>sum){ j--;

numpy常用用法总结

Deadly 提交于 2020-03-03 00:26:59
numpy 简介 numpy的存在使得python拥有强大的矩阵计算能力,不亚于matlab。 官方文档( https://docs.scipy.org/doc/numpy-dev/user/quickstart.html ) 各种用法介绍 首先是numpy中的数据类型,ndarray类型,和标准库中的array.array并不一样。 ndarray的一些属性 ndarray.ndim the number of axes (dimensions) of the array. In the Python world, the number of dimensions is referred to as rank. ndarray.shape the dimensions of the array. This is a tuple of integers indicating the size of the array in each dimension. For a matrix with n rows and m columns, shape will be (n,m). The length of the shape tuple is therefore the rank, or number of dimensions, ndim. ndarray.size the