Jet

Results 8 comments of Jet

/** * @param {number[]} arr * @param {number} k * @return {number[]} */ function swap(arr, i , j){ let temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } //...

var minEatingSpeed = function(piles, h) { // 思路: 从最小速度,整数递增到最大速度,遍历出来一个刚好

> 我看了好几篇文章,都是说左边的孩子的i值计算是这样的: > > ![image](https://user-images.githubusercontent.com/1953879/110757052-e8a01a80-8285-11eb-8218-977d70252861.png) > > 跟你的2*i 不一样,怎么回事? 你把根节点用arr索引标记时标记索引为0,即你把arr[0]放到根节点,那么这个堆里根节点的索引为 i ,则根节点的左子节点的索引与根节点索引的关系就是=2*i+1 ,当你把根节点用arr索引标记时标记索引为1,那么这个堆里根节点的索引为 i ,则根节点的左子节点的索引与根节点索引的关系就是=2*i , 你自己画个堆的完全二叉树结构然后给它用索引标记一下看下过程就能很容易看出来根与左右子节点索引方面的对应关系的。一种情况就是你说的根节点填的是索引0, 上面层主给的解法中,它往根节点填的索引是1 。可以很容易看出来对应关系的,这个没有特别的科学依据,无厘头的,看出来的。 大根堆的基础知识网上搜了一个,如下文章: https://blog.csdn.net/m0_59356888/article/details/125444573 它heapify 那个函数里为啥用 2i表示节点i的左子节点,2i+1表示节点i的右子节点。很明显 , i 指的是在数组里的索引,我们回想这个数组填满堆的顺序是从顶层往下层,每层从左往右依次填满,他们每个节点的值对应的在数组里的索引就是(0, 1, 2, 。。。或者就是1,2,3,...或者就是2,3,4,....。反正填满这个堆结构用到的这些arr[i],i...

> 我看了好几篇文章,都是说左边的孩子的i值计算是这样的: > > ![image](https://user-images.githubusercontent.com/1953879/110757052-e8a01a80-8285-11eb-8218-977d70252861.png) > > 跟你的2*i 不一样,怎么回事? **************************************************分隔线********************************************************* 关于 “最小的k个数” 这道题,给你个解法: /** * @param {number[]} arr * @param {number} k * @return {number[]} */ function swap(arr, i ,...

> > ```js > > let preHead = new ListNode(-1); > > ``` > > 这里 ListNode 的类定义方便给一下嘛? /** * Definition for singly-linked list. * function ListNode(val, next) { *...

``` var maxProfit = function(prices) { let res = 0; let bottom = prices[0]; for(let i = 1; iprices[i-1]){ res = res + prices[i]-bottom; bottom = prices[i]; }else if(prices[i]

> class Solution { public: void maxHeapify(vector& a, int i, int heapSize) { int l = i * 2 + 1, r = i * 2 + 2, largest =...