![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Leetcode
Suninsky!
虚心学习
展开
-
leetcode-153/154 O(logn)找出旋转数组的最小值
背景 假设按照升序排序的数组在预先未知的某个点上进行了旋转。 ( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。 [4,5,6,7,0,1,2]称为旋转数组。 1.假设数组中不存在重复元素。 二分法。 找中点,判断中点是不是特殊点(在最大值,或者最小值) 不是特殊点就继续二分,看哪一边依然还是旋转的。往旋转那边走。 旋转的判定条件就是nums[l] > nums[r]. class Solution { public int findMin(in原创 2020-07-22 21:17:10 · 283 阅读 · 0 评论 -
用O(n)复杂度求第k大的值
算法思想 取一个pivot,以pivot将原数组划分为两部分大小分别是x和y,确定了pivot的位置,现在知道pivot是第y+1大,如果k比y+1小,继续往右边找,如果k比y+1大,往左边找,如果k等于y+1,说明找到了。 主定理(master theorem) 假设有递推表达式 T(n)=aT(nb)+f(n)T(n)=aT(\frac n b)+f(n)T(n)=aT(bn)+f(n) ,其中nnn为问题规模,aaa为递推的子问题数量, nb\frac n bbn为每个子问题的规模(假设每个子问题原创 2020-07-19 22:56:23 · 353 阅读 · 0 评论 -
Leetcode每日一题 1431. 拥有最多糖果的孩子
给你一个数组 candies 和一个整数 extraCandies ,其中 candies[i] 代表第 i 个孩子拥有的糖果数目。 对每一个孩子,检查是否存在一种方案,将额外的 extraCandies 个糖果分配给孩子们之后,此孩子有 最多 的糖果。注意,允许有多个孩子同时拥有 最多 的糖果数目。 示例 1: 输入:candies = [2,3,5,1,3], extraCandies = 3 输出:[true,true,true,false,true] 解释: 孩子 1 有 2 个糖果,如果他得到所有原创 2020-06-01 11:23:48 · 246 阅读 · 0 评论 -
101 leetcode 对称二叉树
题意: 给定一个二叉树,检查它是否是镜像对称的。 解法一: 核心思想,中序和先序(后序)组合,可以唯一确定一颗二叉树。有了这个思路,既然镜像对称,那么从左往右和从右往左得到的序列应该是一样的。因为树中的元素没有限制,可以存在相同元素,所以需要添加一个条件,把有兄弟的那些空节点用null表示。这样保证了一颗二叉树一定是满二叉树,虽然一些节点是null。 class Solution { public boolean isSymmetric(TreeNode root) { seq1 =原创 2020-05-31 18:35:35 · 111 阅读 · 0 评论