前言:
当前姐妹们对“数组中比较大小的程序代码”大致比较讲究,咱们都需要学习一些“数组中比较大小的程序代码”的相关文章。那么小编也在网络上搜集了一些对于“数组中比较大小的程序代码””的相关内容,希望我们能喜欢,姐妹们一起来了解一下吧!方法一
function handler(arr = []) { const result = []; for (let i = 0, len = arr.length; i < len - 1; i++) { for (let j = i + 1; j < len; j++) { if(arr[j] > arr[i]) { result[i] = arr[j]; break; } result[i] = -1; } } result[arr.length - 1] = -1; return result;}console.log(handler([2,6,3,8,10,9]));方法二
function rightMax(arr) { let len = arr.length if (len === 0) { return [] } if (len === 1) { return [-1] } let result = new Array(len) result.fill(-1) let idx_dp = new Array(len) idx_dp.fill(-1) let start = arr.length - 2 while (start >=0) { let end = start + 1 while (arr[start] >= arr[end] && end !== -1) { end = idx_dp[end] } if (end !== -1) { idx_dp[start] = end result[start] = arr[end] } start = start - 1 } return result}方法三
const arr = [2, 6, 3, 8, 10, 9]function getNewArr(arr) { const result = [] const len = arr.length for (let i=0; i<len; i++){ let counter = i + 1 while (counter < len && arr[i] >= arr[counter]){ counter ++ } if (counter === len) { result.push(-1) } else { result.push(arr[counter]) } } return result}console.log(getNewArr(arr))方法四
function get(arr){ let stack = [] let n = arr.length let res = new Array(n).fill(-1) for(let i = 0; i < n; i++){ while(stack.length && arr[stack[stack.length - 1]] < arr[i]){ res[stack.pop()] = arr[i] } stack.push(i) } return res}console.log(get([2,6,3,8,10,9]))方法五
//用apifunction mySort(arr) { return arr.map((item, index) => { let t = arr.find((item2, index2) => { return item2 > item && index2 > index }) if (t === undefined) t = -1 return t })}console.log(mySort([2, 6, 3, 8, 10, 9]));方法六
/* *示例: *给定数组:[2,6,3,8,10,9] *返回数组:[6,8,8,10,-1,-1] */function findBiggerRight(source: number[]): number[] { const result: number[] = []; const lastIdx = source.length - 1; // 跳过最后一项 for (let slow = 0; slow < lastIdx; slow++) { // 从当前元素的右边开始找起 for (let fast = slow + 1; fast < source.length; fast++) { if (source[fast]! > source[slow]!) { result.push(source[fast]!); break; } // 最后一项也不大于 slow 对应的数 if (fast === lastIdx) { result.push(-1); } } } result.push(-1); // 最后一项后面没有元素了,需要补充一位 return result;}方法七
// 给定一个数组,按找到每个元素右侧第一个比它大的数字,没有的话返回-1 规则返回一个数const findRightFristMax = (arr) => { let result = []; const len = arr.length; for (let i = 0; i < len - 1; i++) { for (let j = i + 1; j < len; j++) { if (arr[j] > arr[i]) { result[i] = arr[j]; break; } result[i] = -1; } } result[len - 1] = -1; return result;}console.log(findRightFristMax([2, 6, 3, 8, 10, 9]));
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。
标签: #数组中比较大小的程序代码