当前位置: 首页 > Web前端 > JavaScript

264.丑数II-算法(Leetcode,附思维导图+全解)300题

时间:2023-03-27 15:19:55 JavaScript

零题目:算法(leetcode,附思维导图+全解)300题(264)丑数II1题目描述二解概览(思维导图)三全解1方案11)代码://方案1:“我自己。三分球法”。//思路://因为每个数都要计算三次,一次2,一次3,一次5,//所以定义三个指针——index_2,index_3,index_5。//这三个指针的起点相同,都是0,//如果当前数乘以2,则向后移动index_2,//如果当前数乘以3,则向后移动index_2index_3向后移动,//如果当前乘以5,则将index_5向后移动。//思路://1)状态初始化:resList=[1],index_2=0,index_3=0,index_5=0;.//2)核心:循环处理,条件为resList.length>1;}getLeftIndex(i){返回i*2+1;}getRightIndex(i){返回i*2+2;}shiftUp(index){if(index===0){返回;}constparentIndex=this.getParentIndex(index);if(this.heap[parentIndex]>this.heap[index]){this.swap(parentIndex,index);this.shiftUp(parentIndex);}}swap(i1,i2){consttemp=this.heap[i1];this.heap[i1]=this.heap[i2];this.heap[i2]=temp;}insert(value){this.heap.push(value);this.shiftUp(this.heap.length-1);}pop(){this.heap[0]=this.heap.pop();这个.shiftDown(0);返回this.heap[0];}shiftDown(index){constleftIndex=this.getLeftIndex(index);常量rightIndex=this.getRightIndex(ind前任);如果(this.heap[leftIndex]

最新推荐
猜你喜欢