• 2025-01-07【Leetcode_Hot100】二叉树
    二叉树94.二叉树的中序遍历104.二叉树的最大深度226.翻转二叉树101.对称二叉树543.二叉树的直径102.二叉树的层序遍历108.将有序数组转换为二叉搜索树98.验证二叉搜索树230.二叉搜索树中第K小的元素199.二叉树的右视图114.二叉树展开为链表105.从前序与
  • 2025-01-05leetcode(hot100)6、7
    解题思路:先排序再利用双指针思想然后再去重处理。去重要nums[i]==nums[i-1]考虑-1,-1,2这种情况。classSolution{public:vector<vector<int>>threeSum(vector<int>&nums){sort(nums.begin(),nums.end());vector<vector<int>>r
  • 2025-01-05leetcode(hot100)5
    解题思路:(感觉用到了贪心)双指针思想,首先计算当前面积,然后更新最大容量。移动指针的条件就是当左边高度小于右边了就左指针向右移反之右指针向左移。(因为我们想尝试找到更高的线段以可能增加容量。)移动指针:比较两指针所指的高度:如果左侧高度height[i]小于右侧高度hei
  • 2025-01-05leetcode(hot100)4
    解题思路:双指针思想利用两个for循环,第一个for循环把所有非0的全部移到前面,第二个for循环将指针放在非0的末尾全部加上0。还有一种解法就是利用while循环双指针条件,当不为0就两个指针一起移动,为0就只移动右指针。不为0时交换左右数值,为0就不交换了。(如果数组没有0,那么快慢
  • 2024-12-31hot100-一刷-13堆(共3道题)
    215.数组中的第K个最大元素题目链接题目描述代码实现分析:后面可以看下官方题解的,手动写排序或者大顶堆。代码:classSolution{publicintfindKthLargest(int[]nums,intk){PriorityQueue<Integer>pq=newPriorityQueue<>((n1,n2)->n1-n2);
  • 2024-12-31hot100-一刷-14贪心(共4道题)
    121.买卖股票的最佳时机题目链接题目描述代码实现分析:我们需要知道第i天之前,股票价格的最小值是什么,再讨论从股票最小值买入,第i天卖出获得的利润,取最大值。代码:classSolution{publicintmaxProfit(int[]prices){intminPrice=prices[0];
  • 2024-12-30【Leetcode_Hot100】链表
    链表160.相交链表206.反转链表234.回文链表141.环形链表142.环形链表II21.合并两个有序链表2.两数相加19.删除链表的倒数第N个结点25.K个一组翻转链表138.随机链表的复制148.排序链表23.合并K个升序链表146.LRU缓存160.相交链表方法一:模拟依
  • 2024-12-25hot100-一刷-12栈(共5道题)
    20.有效的括号题目链接题目描述代码实现分析:代码:classSolution{publicbooleanisValid(Strings){intn=s.length();if(n%2==1)returnfalse;Deque<Character>st=newLinkedList<>();for(charc:s.toCharArray
  • 2024-12-23hot100-一刷-11二分查找(共6道题)
    题目题目链接题目描述代码实现分析:代码:题目题目链接题目描述代码实现分析:代码:题目题目链接题目描述代码实现分析:代码:题目题目链接题目描述代码实现分析:代码:题目题目链接题目描述代码实现分析:代码:题目题目链接题目描述代码实现分析:代
  • 2024-12-17hot100-一刷-09图论(共4道题)
    题目题目链接题目描述代码实现分析:代码:题目题目链接题目描述代码实现分析:代码:题目题目链接题目描述代码实现分析:代码:题目题目链接题目描述代码实现分析:代码:
  • 2024-12-11LeetCode - Hot100 - 1.两数之和
    前言本专栏主要通过“LeetCode热题100”,来捡起自己本科阶段的算法知识与技巧。语言主要使用c++/java。题目描述1.两数之和题目链接:https://leetcode.cn/problems/two-sum/?envType=study-plan-v2&envId=top-100-liked给定一个整数数组nums和一个整数目标值target,
  • 2024-12-07Leetcode Hot100 | Day02 双指针
    4.移动零283.移动零给定一个数组nums,编写一个函数将所有0移动到数组的末尾,同时保持非零元素的相对顺序。请注意,必须在不复制数组的情况下原地对数组进行操作。示例1:输入:nums=[0,1,0,3,12]输出:[1,3,12,0,0]示例2:输入:nums=[0]输出:[0]题解:
  • 2024-12-06hot100-一刷-06矩阵(共4道题)
    73.矩阵置零题目链接题目描述代码实现分析:代码:classSolution{publicvoidsetZeroes(int[][]matrix){intm=matrix.length;intn=matrix[0].length;System.out.print(m);booleanr0=false;booleanc0=fal
  • 2024-12-05hot100-一刷-05普通数组(共5道题)
    53.最大子数组和题目链接题目描述代码实现分析:贪心:只要当前累加的值≥0,就是对整个结果是有贡献的,但是一旦<0,就拖累了整体结果。sum就是用来计算某一段上的局部总和。ans用来计算最终答案,取每一段里最大的。sum一旦小于0,则需要清空这一段。动态规划:代码://贪心classSo
  • 2024-12-04【hot100】二叉树
    文章目录94.二叉树中序遍历(迭代做法是重点)递归解法普通迭代做法morris解法102.二叉树的层序遍历广度优先遍历104.二叉树的最大深度递归做法—深度优先搜索226.翻转二叉树递归解法101.对称二叉树递归做法迭代做法543.二叉树的直径递归做法108.将有序数组转换
  • 2024-12-04【hot100】二分查找
    文章目录二分写法获取等于target的最左侧的索引获取等于target的最右侧的索引35.搜索插入位置二分实现74.搜索二维矩阵O(logmn)解法O(n+logm)解法34.在排序数组中查找元素的第一个和最后一个位置二分查找33.搜索旋转排序数组两次二分一次二分153.寻找旋转排序
  • 2024-12-03hot100-一刷-04子串(共3道题)
    560.和为K的子数组题目链接题目描述代码实现分析:暴力:还是有点技巧的,如果单纯暴力,外层fori循环遍历起始下标start,内层forj循环遍历末尾end,里面还需要个循环,计算从i加到j,最坏会到\(O(n^3)\)。考虑固定某一个边界,比如固定end,从end往前算。点击查看代码classSolution
  • 2024-12-03hot100-一刷-03滑动窗口(共2道题)
    3.无重复字符的最长子串题目链接题目描述代码实现分析:因为是要连续的序列,使用滑动窗口+Set集合来判断即将要加入窗口右端的元素是已经在窗口中出现过。代码:classSolution{publicintlengthOfLongestSubstring(Strings){intans=0;//Set
  • 2024-12-01hot100-一刷-02双指针(共4道题)
    283.移动零题目链接题目描述代码实现分析:快慢指针,快指针指向不为0的数,慢指针指向左边当前已经处理好的序列的尾部代码:classSolution{publicvoidmoveZeroes(int[]nums){intslow=0;intfast=0;intn=nums.length;wh
  • 2024-12-01hot100-一刷-01哈希(共3道题)
    1.两数之和题目链接题目描述代码实现分析:暴力的话就是两个for循环依次寻找相加为target的两个数。用一个map记录已经遍历过的数,其中key就用这个数的字面值,value就存它的下标。判断是否相加为taget的时候,只需要看map中是否有target-nums[i]就可以,说明当前的nums[i]和之前
  • 2024-11-28leetcode hot100【LeetCode 169. 多数元素】java实现
    LeetCode169.多数元素题目描述给定一个大小为n的数组nums,找到其中的多数元素。多数元素是指在数组中出现次数大于n/2的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。示例1:输入:nums=[3,2,3]输出:3示例2:输入:nums=[2,2,1,1,1,2,
  • 2024-11-250x03 Leetcode Hot100 双指针
    总结移动零一前一后。前面的遍历数组,后面的维护条件,后指针对值的修改不会影响前指针的遍历。盛最多水的容器一左一右。每次移动一个指针计算当前结果。三数之和一左一右。需要考虑的点:如何去重。接雨水对双指针缺乏练习,还没想到如何同时维护当前位置左右两边最高的点,搁置
  • 2024-11-26Docker - nginxWebUI部署
    nginxWebUI是一款图形化管理nginx配置得工具,可以使用网页来快速配置nginx的各项功能,包括http协议转发,tcp协议转发,反向代理,负载均衡,静态html服务器,ssl证书自动申请、续签、配置等,配置好后可一建生成nginx.conf文件,同时可控制nginx使用此文件进行启动与重载,完成
  • 2024-10-11【hot100-java】LRU 缓存
    链表篇灵神题解  classLRUCache{privatestaticclassNode{intkey,value;Nodeprev,next;Node(intk,intv){key=k;value=v;}}privatefinalintcapacity;//哨兵节点