![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
文章平均质量分 72
Shev_7
这个作者很懒,什么都没留下…
展开
-
建立大根堆
最近复习堆排序和优先队列,其中重要的一环是构建大根堆,即将无序的数组构建成堆有序,堆有序需区别于堆排序,堆有序仅仅是父节点总是不小于子节点,但并不是整个数组是排好了序的。 构建的二叉树是完全二叉树,所以: 1.当根节点索引为1:a.最后一个非叶子节点的索引为n/2;b.若父节点的索引是i,则它左孩子节点为2i,右孩子节点为2i+1 2.当根节...原创 2018-03-15 20:18:49 · 12809 阅读 · 1 评论 -
LeetCode-Search in Rotated Sorted Array
[4,5,6,7,8,0,1,2,3]中查找x,有则返回x索引,没有则返回-1 思路: 1.二分查找,mid=start+(end-start)/2; 2.mid的左边和右边必有一边是有序,若arr[mid]>arr[start],则左边有序,若arr[mid]<arr[start],则右边有序; 3.若左边有序,则以mid为分割,左边的范围为:[arr[start],arr[...原创 2018-12-11 19:27:26 · 194 阅读 · 0 评论 -
LeetCode - Add Two Numbers
ListNode *addTwoNumbers(ListNode *l1, ListNode *l2) { if(l1==NULL){ return l2; } if(l2==NULL){ return l1; } int m=0; L...原创 2019-02-18 14:31:54 · 152 阅读 · 0 评论 -
LeetCode-Reverse Linked List II
ListNode *reverseBetween(ListNode *head, int m, int n) { ListNode dummy(-1); dummy.next=head; ListNode* pre=&dummy; for(int i=1;i<m;i++){ pre=pre->...原创 2019-02-25 10:35:22 · 188 阅读 · 0 评论