![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
leetcode
走一步-再走一步
这个作者很懒,什么都没留下…
展开
-
字典树-前缀树
1.往字典树里面插入字符串2.查找以指定字符串开头的所有字符串3.字符串都是小写英文字母public class TreeNode { TreeNode[] childen; boolean isEnd; public TreeNode(){ childen = new TreeNode[26]; } public void insert(String word){ TreeNode node = this;原创 2022-03-17 16:44:34 · 376 阅读 · 0 评论 -
每日一题 寻找峰值
162. 寻找峰值根据假设 nums[-1] = nums[n] = -∞ 。那么假设nums[i]<nums[i+1]那么往右侧找一定能找到,因为右侧num[n]= -∞同理如果nums[i] < nums[i-1] 那么往左找一定能找到,因为左侧num[-1]= -∞public int findPeakElement(int[] nums) { int len = nums.length; if(len == 1){ ret原创 2021-09-15 17:36:57 · 64 阅读 · 0 评论 -
每日一题-LeetCode获取生成数组中的最大值
1646. 获取生成数组中的最大值动态规划:定义dp[i] 表示nums[i]的值dp 递推公式当n>=2 ,为偶数时候 nums[2 * i] = nums[i] ,两边下标都除以2,因为i为偶数,因此i/2 一定能整除,因此等价于 ==> a[i] = a[i/2];为奇数的时候 nums[2 * i + 1] = nums[i] + nums[i + 1] ==> 两边下标同时处以2nums[i+1/2] = nums[i/2]+nums[(i+1)/2]因为int原创 2021-08-23 22:48:14 · 235 阅读 · 0 评论 -
LeetCode- 复制带随机指针的链表-Java
复制带随机指针的链表给你一个长度为 n 的链表,每个节点包含一个额外增加的随机指针 random ,该指针可以指向链表中的任何节点或空节点。构造这个链表的 深拷贝。 深拷贝应该正好由 n 个 全新 节点组成,其中每个新节点的值都设为其对应的原节点的值。新节点的 next 指针和 random 指针也都应指向复制链表中的新节点,并使原链表和复制链表中的这些指针能够表示相同的链表状态。复制链表中的指针都不应指向原链表中的节点 。例如,如果原链表中有 X 和 Y 两个节点,其中 X.random --&.原创 2021-07-22 09:13:23 · 92 阅读 · 0 评论 -
1846. 减小和重新排列数组后的最大元素
减小和重新排列数组后的最大元素给你一个正整数数组 arr 。请你对 arr 执行一些操作(也可以不进行任何操作),使得数组满足以下条件:arr 中 第一个 元素必须为 1 。任意相邻两个元素的差的绝对值 小于等于 1 ,也就是说,对于任意的 1 <= i < arr.length (数组下标从 0 开始),都满足 abs(arr[i] - arr[i - 1]) <= 1 。abs(x) 为 x 的绝对值。你可以执行以下 2 种操作任意次:减小 arr 中任意元素的值,使其变.原创 2021-07-15 09:49:48 · 87 阅读 · 0 评论