致已经过去的2024和将要到来的2025 致已经过去的2024和将要到来的20252024年又要过去了,一年又一年,去年的今天,和朋友一起去了沈阳跨年,今年是一个人咯,来回忆一下过去这一年吧。 元旦三天假去了沈阳,去了沈阳故宫、大帅府,还去滑雪。回来之后开始为自己争取一些权利,但是没有成功,并且度过了一段非常痛苦的日子。这里,我不想再过多地回忆这些,因为我能回忆到的,也只是无力、绝望。月底放假回家过年了,算是能够休整一段时间。 二月初,在 2024-12-31 随手记
面试经典 150 题-数组/字符串 LeetCode 面试经典 150 题-数组/字符串移出元素双指针初始化左右指针指向首尾,如果右指针指向val,就不断左移,如果左指针指向val,就和右指针交换,然后左指针右移,右指针左移,直到两者相遇。最后left所指向的位置就是第一个为val的下标,也就是非val元素的个数。 1234567891011121314151617181920212223class Solution 2024-12-25 算法笔记 > 数组 #数组 #双指针 #贪心
LeetCode 热题 100-技巧 LeetCode 热题 100-技巧只出现一次的数字位运算两个相同的数字异或结果是0,因此将数组中每个数字进行异或运算,最后得到的数字就是只出现一次的那个数字。 123456789class Solution { public int singleNumber(int[] nums) { int ans = 0; for (int i = 0; 2024-12-23 算法笔记 > 技巧 #leetcode-hot100
LeetCode 热题 100-动态规划 LeetCode 热题 100-动态规划爬楼梯动态规划f(n) = f(n-1) + f(n-2) 123456789101112class Solution { public int climbStairs(int n) { int f0 = 1; int f1 = 1; for (int i = 2; i <= 2024-12-19 算法笔记 > 动态规划 #leetcode-hot100
LeetCode 热题 100-贪心算法 LeetCode 热题 100-贪心算法买卖股票的最佳时机分析从左到右枚举价格,维护一个它左边元素的最小值的变量,再维护一个答案变量。 12345678910111213class Solution { public int maxProfit(int[] prices) { int minPrice = Integer.MAX_VALUE; 2024-12-17 算法笔记 > 贪心 #leetcode-hot100
LeetCode 热题 100-堆 LeetCode 热题 100-堆数组中的第k个最大元素堆排序建立一个大小为k的小根堆,遍历数组中的元素,如果有大于堆顶的,则替换堆顶并调整堆,最终堆顶就是第k个最大的元素。 小根堆操作:将以节点 i 为根的子树进行小根堆调整 获取左右子节点索引和当前节点索引 如果左子节点存在且小于当前节点,则更新最小节点索引;如果右子节点存在且小于当前节点或左子节点,则更新最小节点索引 如果最小节点索引不等于 2024-12-16 算法笔记 > 堆 #leetcode-hot100
LeetCode 热题 100-栈 LeetCode 热题 100-栈有效的括号栈遇到左括号就放入栈,遇到右括号就开始匹配。最后如果栈不为空,就说明匹配失败,否则成功。 12345678910111213141516171819202122232425class Solution { public boolean isValid(String s) { int n = s.length(); 2024-12-15 算法笔记 > 栈 #leetcode-hot100
LeetCode 热题 100-二分查找 LeetCode 热题 100-二分查找搜索插入位置闭区间123456789101112131415class Solution { public int searchInsert(int[] nums, int target) { int n = nums.length; int left = 0, right = n - 1; 2024-12-13 算法笔记 > 二分查找 #leetcode-hot100
LeetCode 热题 100-回溯法 LeetCode 热题 100-回溯法从这里开始要试着用java刷题了! 全排列回溯法使用标记数组来处理填过的数是一个很直观的思路,为减少空间复杂度,将题目给定的 n 个数的数组 nums 划分成左右两个部分,左边的表示已经填过的数,右边表示待填的数,我们在回溯的时候只要动态维护这个数组即可。 递归终止条件,index == nums.size()。 递归选择:动态维护数组, 2024-12-10 算法笔记 > 回溯法 #leetcode-hot100
LeetCode 热题 100-图论 LeetCode 热题 100-图论岛屿数量深度优先搜索对于每一个位置,如果它是1,就以它为中心,向四周扩展,并更新结果。需要对已经遍历过的岛屿进行标记,防止重复遍历。需要定义一个函数,判断是否越界。 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647class Solution 2024-12-08 算法笔记 > 图论 #leetcode-hot100