随笔分类 - top100
摘要:[** 718 最长重复子数组**](https://leetcode.cn/problems/maximum-length-of-repeated-subarray/description/) [**这里的子数组的概念和字串类似,和子序列是不一个东西。**](https://www.cnblogs
阅读全文
摘要:[1143. 最长公共子序列](https://leetcode.cn/problems/longest-common-subsequence/description/)  ``` package leetcode.arrayAndList; import java.util.ArrayList; import java.util.HashSet; import java.util.Set; public class CommentStr {
阅读全文
摘要:[剑指 Offer 16. 数值的整数次方](https://leetcode.cn/problems/shu-zhi-de-zheng-shu-ci-fang-lcof/) ## 这是在面试时候,无准备折腾除了的递归写法。 ``` class Solution { public double my
阅读全文
摘要:## 141. 环形链表 ### 1.哈希表法: **将节点依次加入set,如果有重复就是有环。** ``` public class Solution { public boolean hasCycle(ListNode head) { Set set = new HashSet(); while
阅读全文
摘要:这道题可以有很多延伸:(1)简单的TopK算法 (2)大文件无法一次加载进内存如何找出TopK数字 (3)大文件找出频率次数最高的K个数字 (4)系统设计:Top-K Hitter找出一定时段内点击量最高的视频、博文 1)简单的TopK算法 优先队列实现 下列代码实现找出最小的前k个数,Priori
阅读全文
摘要:思路视频参考:https://www.bilibili.com/video/BV1Nb4y1z7hG?p=1&vd_source=46d50b5d646b50dcb2a208d3946b1598 ``` class Solution { // 使用 map 维护一个运算符优先级 // 这里的优先级划
阅读全文
摘要:## 推荐方法 **解题思路** countDownLatch这个类使一个线程等待其他线程各自执行完毕后再执行。是通过一个计数器来实现的,计数器的初始值是线程的数量。每当一个线程执行完毕后,计数器的值就-1,当计数器的值为0时,表示所有线程都执行完毕,然后在闭锁上等待的线程就可以恢复工作了。 1:首
阅读全文
摘要:参考:https://blog.csdn.net/qq_51625182/article/details/127584386
阅读全文
摘要:## 头插法: ``` class Solution { public ListNode reverseList(ListNode head) { ListNode newHead = new ListNode(0);newHead.next = null; ListNode p = head; L
阅读全文
摘要:``` class Solution { private int count; public int findTargetSumWays(int[] nums, int target) { this.count = 0; process(nums,target,0); return count; }
阅读全文
摘要: 其中,dp[i][j]表示使用前i个硬币可以凑出总价值为j的钱数的最小硬币数,初始化时将dp[0][i]的值设为无
阅读全文
摘要:### 分析: A 对于题目中定义的旋转数组,从中间一分为二。一定是被分为一个有序数组,一个旋转数组(循环数组)。 B 若对旋转数组再次从中间分割,会重复A的操作。对有序数组二分可看做普通二分查找一致操作。 定理一:只有在顺序区间内才可以通过区间两端的数值判断target是否在其中。 定理二:判断顺
阅读全文
摘要:## 55. 跳跃游戏 **这种方法所依据的核心特性:如果一个位置能够到达,那么这个位置左侧所有位置都能到达。 想到这一点,解法就呼之欲出了~** ``` class Solution { public boolean canJump(int[] nums) { // 这种方法所依据的核心特性:如果
阅读全文
摘要:递归方法: ``` public class Combination { /** * 计算从m个元素中选n个元素的组合数Cmn * @param m 总共有m个元素 * @param n 从中选n个元素 * @return 组合数Cmn的值 */ public static int Cmn(int
阅读全文
摘要:``` class Solution { public void nextPermutation(int[] nums) { int n = nums.length; if(n = 1; i--){ if(nums[i] > nums[i-1]){ // (i, n) 是降序 这里是因为之前循环是从
阅读全文
摘要:package leetcode.top100; import java.util.*; public class Timetable { public static boolean canFinish(int numCourses, int[][] prerequisites) { /** * 核
阅读全文
摘要:递推公式: 和斐波那契数列是一致的 1.暴力办法,时间复杂度O(2^n) public class Solution { public int JumpFloor(int n) { if (n == 1) return 1; if (n == 2) return 2; return JumpFloo
阅读全文
摘要:347. 前 K 个高频元素 public class topK { //// 第一种方法,需要对所有的数据进行排序 时间复杂度n*logn // public static int[] topKFrequent(int[] nums, int k) { // HashMap<Integer, In
阅读全文
摘要:200. 岛屿数量 class Solution { //利用深度递归解决,可以看图,并加记住这个模板,他可以解决岛屿中的问题,还有一题岛屿面积问题也是这个模板。 public int numIslands(char[][] grid) { //定义一个表示岛屿数量的变量 int count = 0
阅读全文