随笔分类 - top100
摘要:单调栈做法 42. 接雨水 public class mylist { public static int trap(int[] height) { int lens = height.length; // 形成凹槽至少需要三个圆柱,少于三个无法实现 if(lens<=2) return 0; //
阅读全文
摘要:739. 每日温度 java在这里实现的时候用的是LinkedList,所以个人感觉这里与其叫单调栈不如叫单调队列。 注意区分LinkedList的add和push方法。 顺便温习一下集合的关系 class Solution { public int[] dailyTemperatures(int[
阅读全文
摘要:设计单调栈 class Solution { class MyQueue{ Deque<Integer> deque = new LinkedList<>(); // 弹出元素时,比较当前要弹出的数值是否等于队列出口的数值,如果相等则弹出 public void poll(int val){ if(
阅读全文
摘要:链接:https://leetcode.cn/problem-list/2cktkvj/
阅读全文
摘要:面试可能 考的是0-1背包和完全背包问题。 ## 概述  ## 0-1背包 )
阅读全文
摘要:参考:https://www.bilibili.com/video/BV1Y441117gR/?from=search&seid=9796499757209042214&spm_id_from=333.337.0.0&vd_source=46d50b5d646b50dcb2a208d3946b159
阅读全文
摘要:56.合并区间 class Solution { public int[][] merge(int[][] intervals) { /** 1.根据元素左侧的大小排序。 2.判断合并 a.如果下一个元素的左侧元素大于当前元素的右侧元素,不合并,直接加入。 b.如果不是,进行合并,将当前元素的右侧元
阅读全文
摘要:10. 正则表达式匹配 1.动态规划 public boolean isMatch(String s, String p) { char[] cs = s.toCharArray(); char[] cp = p.toCharArray(); // dp[i][j]:表示s的前i个字符,p的前j个字
阅读全文
摘要:22. 括号生成 有效的含义是指的右括号的数量不能超过左括号。 参考官方答案以及评论 1.完全暴力方法 列举出所有的情况,把无效的舍去 class Solution { public List<String> generateParenthesis(int n) { List<String> com
阅读全文
摘要: ## 这是属于滑动窗口的系列题目 ``` public int lengthOfLongestSubstring
阅读全文
摘要:思路:所给的链表是逆序的,要求返回的也是逆序的,这正是模拟人在做加法运算时候的进位习惯,从低位到高位运算。只需要新建一个列表存储结果链表,设定一个变量做为进位标识。 /** * Definition for singly-linked list. * public class ListNode {
阅读全文
摘要:三数之和的核心思想是双指针, 1.将数组排序 2.设定变量i,L,R三个指针变量,寻找num[i]+num[L]+num[R] = 0的三个下标的值。方法:i是作为遍历数组的下标,L是从i后面的开始的部分的左边的元素,R是i后面部分右边的元素。 tips: a.当i>0,没必要在继续遍历寻找值,因为
阅读全文
摘要:自己造轮子 class LRUCache { // 题根据目要求函数 get 和 put 必须以 O(1) 的平均时间复杂度运行,所以一定需要用到HashMap。 // 同时,需要删除最久未使用,也就是说需要保留顺序,需要用到队列,并且插入删除复杂度O(1),所以需要用到链表(双向)实现的队列 //
阅读全文