immortalize
码龄5年
关注
提问 私信
  • 博客:72,422
    社区:16
    72,438
    总访问量
  • 115
    原创
  • 1,614,520
    排名
  • 6
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:湖南省
  • 加入CSDN时间: 2020-04-27
博客简介:

immortalize的博客

查看详细资料
个人成就
  • 获得30次点赞
  • 内容获得10次评论
  • 获得111次收藏
  • 代码片获得453次分享
创作历程
  • 85篇
    2022年
  • 3篇
    2021年
  • 27篇
    2020年
成就勋章
TA的专栏
  • leetcode算法题解答
    78篇
  • 宫水三叶每日一题系列
    16篇
  • 《JAVA并发编程的艺术》 复习篇
    1篇
  • 《JAVA核心技术》复习篇
    2篇
  • leetcode热题100
    1篇
  • 笔试题目解答
    2篇
  • docker
    1篇
  • 操作系统
  • 数据结构与算法
    17篇
  • c语言
    1篇
  • Java语言
    5篇
  • 算法
    3篇
  • 星星群
    1篇
创作活动更多

HarmonyOS开发者社区有奖征文来啦!

用文字记录下您与HarmonyOS的故事。参与活动,还有机会赢奖,快来加入我们吧!

0人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

Leetcode638:大礼包

Leetcode638:大礼包题目:在 LeetCode 商店中, 有 n 件在售的物品。每件物品都有对应的价格。然而,也有一些大礼包,每个大礼包以优惠的价格捆绑销售一组物品。给你一个整数数组 price 表示物品价格,其中 price[i] 是第 i 件物品的价格。另有一个整数数组 needs 表示购物清单,其中 needs[i] 是需要购买第 i 件物品的数量。还有一个数组 special 表示大礼包,special[i] 的长度为 n + 1 ,其中 special[i][j] 表示第
原创
发布博客 2022.05.11 ·
465 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Leetcode59:螺旋矩阵II

Leetcode59:螺旋矩阵II题目:给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。思路:模拟代码如下:class Solution { public int[][] generateMatrix(int n) { int[][] res = new int[n][n]; int startX = 0; int startY = 0
原创
发布博客 2022.05.11 ·
419 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Leetcode209:长度最小的子数组(滑动窗口)

Leetcode209:长度最小的子数组题目:给定一个含有 n 个正整数的数组和一个正整数 target 。找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, …, numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。思路:滑动窗口代码如下:class Solution { public int minSubArrayLen(int target, int[] nums) {
原创
发布博客 2022.05.11 ·
359 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Leetcode977:有序数组的平方(数组快慢指针)

Leetcode977:有序数组的平方题目:给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。思路:数组快慢指针代码如下:解法1:使用数组排序函数class Solution { public int[] sortedSquares(int[] nums) { int n = nums.length; for(int i =0; i < n; i++){
原创
发布博客 2022.05.10 ·
383 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

leetcode27:移除元素(数组快慢指针)

leetcode27:移除元素题目:给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。思路:快慢指针代码如下:class Solution { public int removeElement(int[] nums, int val) { int
原创
发布博客 2022.05.10 ·
247 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Leetcode968:监控二叉树(贪心算法)

Leetcode968:监控二叉树题目:给定一个二叉树,我们在树的节点上安装摄像头。节点上的每个摄影头都可以监视其父对象、自身及其直接子对象。计算监控树的所有节点所需的最小摄像头数量。思路:贪心算法+代码注释代码如下:class Solution { //0 表示 无覆盖 ;1 表示 摄像头 ;2 表示 有覆盖 int res = 0; public int minCameraCover(TreeNode root) { if
原创
发布博客 2022.05.10 ·
194 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Leetcode738:单调递增的数字(贪心算法)

Leetcode738:单调递增的数字题目:当且仅当每个相邻位数上的数字 x 和 y 满足 x <= y 时,我们称这个整数是单调递增的。给定一个整数 n ,返回 小于或等于 n 的最大数字,且数字呈 单调递增 。思路:贪心算法从后往前遍历,当前一个数大于后一个数时,将当前的数自减1,将后一个数改为9代码如下:class Solution { public int monotoneIncreasingDigits(int n) { St
原创
发布博客 2022.05.10 ·
324 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Leetcode1155:掷骰子的N种方法

Leetcode1155:掷骰子的N种方法题目:这里有 n 个一样的骰子,每个骰子上都有 k 个面,分别标号为 1 到 k 。给定三个整数 n , k 和 target ,返回可能的方式(从总共 kn 种方式中)滚动骰子的数量,使正面朝上的数字之和等于 target 。答案可能很大,你需要对 109 + 7 取模 。思路:分组背包代码如下:class Solution { int mod = (int)1e9+7; public int numRoll
原创
发布博客 2022.05.10 ·
314 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

Leetcode2264:字符串中最大的3个相同的数字

Leetcode2264:字符串中最大的3个相同的数字题目:给你一个字符串 num ,表示一个大整数。如果一个整数满足下述所有条件,则认为该整数是一个 优质整数 :该整数是 num 的一个长度为 3 的 子字符串 。该整数由唯一一个数字重复 3 次组成。以字符串形式返回 最大的优质整数 。如果不存在满足要求的整数,则返回一个空字符串 “” 。注意:子字符串 是字符串中的一个连续字符序列。num 或优质整数中可能存在 前导零 。代码如下:class Solution {
原创
发布博客 2022.05.09 ·
256 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Leetcode56:合并区间(贪心算法)

Leetcode56:合并区间题目:以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] 。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间 。思路:贪心算法代码如下:class Solution { public int[][] merge(int[][] intervals) { List<int[]> res = new LinkedLi
原创
发布博客 2022.05.09 ·
301 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

leetcode763:划分字母区间(贪心算法)

leetcode763:划分字母区间题目:字符串 S 由小写字母组成。我们要把这个字符串划分为尽可能多的片段,同一字母最多出现在一个片段中。返回一个表示每个字符串片段的长度的列表。思路:贪心算法代码如下:class Solution { public List<Integer> partitionLabels(String s) { List<Integer> res = new LinkedList<Integer>();
原创
发布博客 2022.05.09 ·
232 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Leetcode942:增减字符串匹配(贪心算法)

Leetcode942:增减字符串匹配题目:由范围 [0,n] 内所有整数组成的 n + 1 个整数的排列序列可以表示为长度为 n 的字符串 s ,其中:如果 perm[i] < perm[i + 1] ,那么 s[i] == ‘I’如果 perm[i] > perm[i + 1] ,那么 s[i] == ‘D’给定一个字符串 s ,重构排列 perm 并返回它。如果有多个有效排列perm,则返回其中 任何一个 。思路:贪心算法每当遇到I,则把当前的最小值给遍历的
原创
发布博客 2022.05.09 ·
424 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Leetcode494:目标和(回溯算法)

Leetcode494:目标和题目:给你一个整数数组 nums 和一个整数 target 。向数组中的每个整数前添加 ‘+’ 或 ‘-’ ,然后串联起所有整数,可以构造一个 表达式 :例如,nums = [2, 1] ,可以在 2 之前添加 ‘+’ ,在 1 之前添加 ‘-’ ,然后串联起来得到表达式 “+2-1” 。返回可以通过上述方法构造的、运算结果等于 target 的不同 表达式 的数目。思路:回溯算法代码如下:class Solution { int
原创
发布博客 2022.05.09 ·
190 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Leetcode442:数组中重复的数据

Leetcode442:数组中重复的数据题目:给你一个长度为 n 的整数数组 nums ,其中 nums 的所有整数都在范围 [1, n] 内,且每个整数出现 一次 或 两次 。请你找出所有出现 两次 的整数,并以数组形式返回。你必须设计并实现一个时间复杂度为 O(n) 且仅使用常量额外空间的算法解决此问题。思路:定义一维数组且初始化所有的数据为1,每当数组的数字位置出现过1次,数组的数字位置的值减1;当数组的数字位置的值小于0时,说明数组的数字位置出现过两次或以上次数,则将该
原创
发布博客 2022.05.08 ·
292 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Leetcode474:一和零

Leetcode474:一和零题目:给你一个二进制字符串数组 strs 和两个整数 m 和 n 。请你找出并返回 strs 的最大子集的长度,该子集中 最多 有 m 个 0 和 n 个 1 。如果 x 的所有元素也是 y 的元素,集合 x 是集合 y 的 子集 。思路:动态规划、背包问题代码如下:class Solution { public int findMaxForm(String[] strs, int m, int n) { int l
原创
发布博客 2022.05.08 ·
291 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

leetcode452:用最少数量的箭引爆气球&&leetcode435:无重叠区间(贪心算法)

两道题不同的问法,但是具有相同的解题思路leetcode452:用最少数量的箭引爆气球题目:有一些球形气球贴在一堵用 XY 平面表示的墙面上。墙面上的气球记录在整数数组 points ,其中points[i] = [xstart, xend] 表示水平直径在 xstart 和 xend之间的气球。你不知道气球的确切 y 坐标。一支弓箭可以沿着 x 轴从不同点 完全垂直 地射出。在坐标 x 处射出一支箭,若有一个气球的直径的开始和结束坐标为 xstart,xend, 且满足 xstart.
原创
发布博客 2022.05.06 ·
174 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

leetcode933:最近的请求次数

leetcode933:最近的请求次数题目:写一个 RecentCounter 类来计算特定时间范围内最近的请求。请你实现 RecentCounter 类:RecentCounter() 初始化计数器,请求数为 0 。int ping(int t) 在时间 t 添加一个新请求,其中 t 表示以毫秒为单位的某个时间,并返回过去 3000 毫秒内发生的所有请求数(包括新请求)。确切地说,返回在 [t-3000, t] 内发生的请求数。保证 每次对 ping 的调用都使用比之前更大的 t 值。
原创
发布博客 2022.05.06 ·
91 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

leetcode134:加油站(贪心算法)

leetcode134:加油站题目:在一条环路上有 n 个加油站,其中第 i 个加油站有汽油 gas[i] 升。你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。给定两个整数数组 gas 和 cost ,如果你可以绕环路行驶一周,则返回出发时加油站的编号,否则返回 -1 。如果存在解,则 保证 它是 唯一 的。思路:贪心算法+代码注释代码如下:class Solution
原创
发布博客 2022.05.05 ·
814 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Leetcode1005:k次取反后最大化的数组和(贪心算法)

Leetcode1005:k次取反后最大化的数组和题目:给你一个整数数组 nums 和一个整数 k ,按以下方法修改该数组:选择某个下标 i 并将 nums[i] 替换为 -nums[i] 。重复这个过程恰好 k 次。可以多次选择同一个下标 i 。以这种方式修改数组后,返回数组 可能的最大和 。思路:贪心算法代码如下:class Solution { public int largestSumAfterKNegations(int[] nums, int k)
原创
发布博客 2022.05.05 ·
323 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

leetcode45:跳跃游戏II(贪心算法)

leetcode45:跳跃游戏II题目:给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标。思路:贪心算法代码如下:class Solution { public int jump(int[] nums) { int res = 0; //下一步覆盖最远距离 int nextDistance = 0; /
原创
发布博客 2022.05.05 ·
1105 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏
加载更多