任我行
  • 首页
  • 归档
  • 分类
  • 标签
  • 关于
  • 壁纸

面试经典 150 题-滑动窗口

LeetCode 面试经典 150 题-滑动窗口长度最小的子数组前缀和+滑动窗口子数组不是子序列,不能去掉一些数字,它必须是连续的。考虑求数组的前缀和,前缀和数组一定是飞递减的,因为数组中的数字都是大于0的。然后遍历前缀和数组,维护一个滑动窗口,如果当前和小于目标,则滑动窗口的右指针右移扩大窗口,否则左指针右移缩小窗口,同时更新最短子数组长度。 12345678910111213141516171
2025-01-02
算法笔记 > 滑动窗口
#滑动窗口

面试经典 150 题-双指针

LeetCode 面试经典 150 题-双指针验证回文串双指针定义双指针指向首尾,left向右移动,right向左移动,如果遇到非字母数字字符,可以直接将其忽略,继续判断下一个字符,如果两指针所指字符都是字母数字字符且不相等,直接返回false,否则待两指针相遇,返回true。 12345678910111213141516171819202122232425class Solution
2025-01-01
算法笔记 > 双指针
#双指针

致已经过去的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
12345…10

搜索

Hexo Fluid
总访问量 次 总访客数 人