1、求两个数之和等于target值
let sum = function (nums, target) {
let length= nums.length;
let value= [];
for (var i= 0; i< length; i++){
let tempNum= target -nums[i];
value.push(tempNum);
let index=value.indexOf(nums[i+ 1]);
if (index> -1) {
return [index, i+1]
break;
}
}
};
console.log( sum([1,6,4,7,2,3],13))
2、已经升序的数组 所有和为指定值的一对等于19的一对数字
let sum = 19;
let arr = [1, 2, 4, 6, 9, 10, 12,15, 17] /
for (var i = 0, j = arr.length- 1; i < j;) {
if (arr[i] + arr[j] < sum) {
i++;
} else if (arr[i] + arr[j] > sum) {
j--
} else {
console.log(arr[i] + '和' + arr[j])
i++;
j--;
}
}
//选择排序
1、找出数组中最小(大)的值,把他放在数组起始位置。
2、找出剩余数组中最小(大)的值,把他放在数组的尾部。
3、重复第二部,直至排完。
function selectionSort(arr) {
var len = arr.length;
var minIndex, temp;
for (var i = 0; i < len - 1; i++) {
minIndex = i;
for (var j = i + 1; j < len; j++) {
if (arr[j] < arr[minIndex]) { // 寻找最小的数
minIndex = j; // 将最小数的索引保存
}
}
temp = arr[i];
arr[i] = arr[minIndex];
arr[minIndex] = temp;
}
return arr;
}
console.log(selectionSort([6,7,3,5,8,1,4,9,2]))
3、生成斐波那契数列 0,1,1,2,3,5,8,13,21.....
getFibonacci(n) {
let fibArr= []
let i= 0
while (i< n) {
if (i<= 1) {
fibArr.push(i)
} else {
fibArr.push(fibArr[i- 1] + fibArr[i- 2])
}
i++;
}
return fibArr
}