一、题目大意标签:数组https://leetcode.cn/problems/search-a-2d-matrix-ii编写一个高效的算法来搜索 m x n 矩阵matrix中的一个目标值target。该矩阵具有以下特性:每行的元素从左到右升序排列。每列的元素从上到下升序排列。示例1:输入:matrix=[[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22],[10,13,14,17,24],[18,21,23,26,30]],target=5输出:true示例2:输入:matrix=[[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,
一、题目大意标签:数组https://leetcode.cn/problems/rotate-image给定一个n × n的二维矩阵 matrix表示一个图像。请你将图像顺时针旋转90度。你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。示例1:输入:matrix=[[1,2,3],[4,5,6],[7,8,9]]输出:[[7,4,1],[8,5,2],[9,6,3]]示例2:输入:matrix=[[5,1,9,11],[2,4,8,10],[13,3,6,7],[15,14,12,16]]输出:[[15,13,2,5],[14,3,4,1],[12,
一、题目大意标签:数组https://leetcode.cn/problems/find-all-numbers-disappeared-in-an-array给你一个含n个整数的数组nums,其中nums[i]在区间[1,n]内。请你找出所有在[1,n]范围内但没有出现在nums中的数字,并以数组的形式返回结果。示例1:输入:nums=[4,3,2,7,8,2,3,1]输出:[5,6]示例2:输入:nums=[1,1]输出:[2]提示:n==nums.length11进阶:你能在不使用额外空间且时间复杂度为O(n)的情况下解决这个问题吗?你可以假定返回的数组不算在额外空间内。二、解题思路把所
欢迎关注个人公众号:爱喝可可牛奶LeetCode算法训练-动态规划理论知识动态规划当前状态是由前一个状态推导出来的,而贪心没有状态的转移动态规划需要借助dp数组,可能是一维也可能是二维的首先要明确dp数组是用来干什么的,下标对应什么状态如何转移?也就是理清递推公式dp数组如何初始化如何遍历举个栗子模拟推导一遍LeetCode509.斐波那契数分析F(n)=F(n-1)+F(n-2),其中n>1代码classSolution{publicintfib(intn){if(nLeetCode70.爬楼梯分析错误没有理清递推函数classSolution{publicintclimbStairs(in
欢迎关注个人公众号:爱喝可可牛奶LeetCode算法训练-动态规划理论知识动态规划当前状态是由前一个状态推导出来的,而贪心没有状态的转移动态规划需要借助dp数组,可能是一维也可能是二维的首先要明确dp数组是用来干什么的,下标对应什么状态如何转移?也就是理清递推公式dp数组如何初始化如何遍历举个栗子模拟推导一遍LeetCode509.斐波那契数分析F(n)=F(n-1)+F(n-2),其中n>1代码classSolution{publicintfib(intn){if(nLeetCode70.爬楼梯分析错误没有理清递推函数classSolution{publicintclimbStairs(in
一、题目大意https://leetcode.cn/problems/base-7给定一个整数num,将其转化为7进制,并以字符串形式输出。示例1:输入:num=100输出:"202"示例2:输入:num=-7输出:"-10"提示:-107 二、解题思路输入一个整数,输出一个字符串,表示其七进制。进制转换类的题,通常是利用除法和取模来进行计算,同时也要注意一些细节,如负数和零。如果输出是数字类型而非字符串,则也需要考虑是否会超出整数上下界。举例:100,求其7进制100/7=14......214/7=2......0七进制数为最后一位商+余数倒排三、解题方法3.1Java实现publiccl
一、题目大意https://leetcode.cn/problems/count-primes给定整数n,返回所有小于非负整数 n 的质数的数量。示例1:输入:n=10输出:4解释:小于10的质数一共有4个,它们是2,3,5,7。示例2:输入:n=0输出:0示例3:输入:n=1输出:0提示:0二、解题思路输入一个整数,输出也是一个整数,表示小于输入数的质数的个数。埃拉托斯特尼筛法,是判断一个整数是否是质数的方法。并且它可以在判断一个整数n时,同时判断所小于n的整数,因此非常适合这个问题。其原理是:从1到n遍历,假设当前遍历到m,则把所有小于n的、且是m的倍数的整数标为和数;遍历完成后,没有被标
一、题目大意标签:贪心https://leetcode.cn/problems/non-decreasing-array给你一个长度为 n 的整数数组 nums ,请你判断在最多改变 1个元素的情况下,该数组能否变成一个非递减数列。我们是这样定义一个非递减数列的: 对于数组中任意的 i(0示例1:输入:nums=[4,2,3]输出:true解释:你可以通过把第一个4变成1来使得它成为一个非递减数列。示例2:输入:nums=[4,2,1]输出:false解释:你不能在只改变一个元素的情况下将其变为非递减数列。提示:n==nums.length1-105 二、解题思路最多只有一次修改某个数字的机会
一、题目大意标签:贪心https://leetcode.cn/problems/queue-reconstruction-by-height假设有打乱顺序的一群人站成一个队列,数组people表示队列中一些人的属性(不一定按顺序)。每个people[i]=[hi,ki]表示第i个人的身高为hi,前面正好有ki个身高大于或等于hi的人。请你重新构造并返回输入数组 people所表示的队列。返回的队列应该格式化为数组queue,其中queue[j]=[hj,kj]是队列中第j个人的属性(queue[0]是排在队列前面的人)。示例1:输入:people=[[7,0],[4,4],[7,1],[5,0
一、题目大意标签:贪心https://leetcode.cn/problems/best-time-to-buy-and-sell-stock-ii给你一个整数数组prices,其中 prices[i]表示某支股票第i天的价格。在每一天,你可以决定是否购买和/或出售股票。你在任何时候 最多 只能持有一股股票。你也可以先购买,然后在同一天出售。返回你能获得的最大利润 。示例1:输入:prices=[7,1,5,3,6,4]输出:7解释:在第2天(股票价格=1)的时候买入,在第3天(股票价格=5)的时候卖出,这笔交易所能获得利润=5-1=4。 随后,在第4天(股票价格=3)的时候买入,在第5天(股