1 239 Sliding Window Maximun 双端队列 public int[] maxSlidingWindow(int[] nums, int k) { if (nums == null || k <= 0) return new int[0]; int n = nums.length; int[] r = new int[n - k + 1]; int ri = 0; Deque<Integer> q = new ArrayDeque<>(); for (i…
堆基础 堆(Heap)是具有这样性质的数据结构:1/完全二叉树 2/所有节点的值大于等于(或小于等于)子节点的值: 图片来源:这里 堆可以用数组存储,插入.删除会触发节点shift_down.shift_up操作,时间复杂度O(logn). 堆是优先级队列(Priority queue)的底层数据结构,较常使用优先级队列而非直接使用堆处理问题.利用堆的性质可以方便地获取极值,例如 LeetCode 题目 215. Kth Largest Element in an Array,时间复杂度O(nl…
[44]Wildcard Matching [45]Jump Game II (2018年11月28日,算法群衍生题) 题目背景和 55 一样的,问我能到达最后一个index的话,最少走几步. 题解: [55]Jump Game (2018年11月27日,算法群) 给了一个数组nums,nums[i] = k 代表站在第 i 个位置的情况下, 我最多能往前走 k 个单位.问我能不能到达最后一个 index. 题解:虽然是贪心分类,我还是用dp解了.dp[i] 代表我能不能到达第 i 个位置. c…
堆(heap),是一种特殊的数据结构.之所以特殊,因为堆的形象化是一个棵完全二叉树,并且满足任意节点始终不大于(或者不小于)左右子节点(有别于二叉搜索树Binary Search Tree).其中,前者称为小顶堆(最小堆,堆顶为最小值),后者为大顶堆(最大堆,堆顶为最大值).然而更加特殊的是,通常使用数组去存储堆,而不是二叉树.关于完全二叉树,可以参见另一篇博文http://www.cnblogs.com/eudiwffe/p/6207196.html // Heap is a sepcial…
Greedy Gift Givers A group of NP (2 ≤ NP ≤ 10) uniquely named friends has decided to exchange gifts of money. Each of these friends might or might not give some money to any or all of the other friends. Likewise, each friend might or might not receiv…
原题连接:https://pta.patest.cn/pta/test/1342/exam/4/question/27102 题目如下: According to Wikipedia: Insertion sort iterates, consuming one input element each repetition, and growing a sorted output list. Each iteration, insertion sort removes one element fr…
[Unity][Heap sort]用Unity动态演示堆排序的过程 How Heap Sort Works 最近做了一个用Unity3D动态演示堆排序过程的程序. I've made this app to show how heap sort works recently. 效果图(Demo) 一图抵千言. A picture paints a thousand words. 堆排序(Heap Sort) 堆排序总是建立这样一个二叉树:其父结点总大于其子结点. Step 1: The fir…
创建项目的时候报错: Failed to sync Gradle project 'xxx' Error:Unable to start the daemon process: could not reserve enough space for object heap. Please assign more memory to Gradle in the project's gradle.properties file.For example, the following line, in t…