1.有序数组的平方977.有序数组的平方第一想法:暴力破解看完题解想法:朝着双指针方向想遇到困难:用双指针的话,一开始想到两边指针往中间靠,逐个将最大值赋给结果数组。和题解不同的是,循环条件我写了 while(left!=right){...},相比于题解的 while(left,我需要在后面单独为第一个元素赋值(因为没有cover到最后一个元素就跳出循环了)判断条件中,对于nums[left]==nums[right]这种情况,一开始的想法是两头同时逼近与赋值。但是在最后两个元素相同时,此想法报错(例如:[-1,0,0,2])。因此左右指针相等时,可以将其归到两边指针中的一边执行。publi
1.有序数组的平方977.有序数组的平方第一想法:暴力破解看完题解想法:朝着双指针方向想遇到困难:用双指针的话,一开始想到两边指针往中间靠,逐个将最大值赋给结果数组。和题解不同的是,循环条件我写了 while(left!=right){...},相比于题解的 while(left,我需要在后面单独为第一个元素赋值(因为没有cover到最后一个元素就跳出循环了)判断条件中,对于nums[left]==nums[right]这种情况,一开始的想法是两头同时逼近与赋值。但是在最后两个元素相同时,此想法报错(例如:[-1,0,0,2])。因此左右指针相等时,可以将其归到两边指针中的一边执行。publi
第一题150.逆波兰表达式求值根据逆波兰表示法,求表达式的值。有效的算符包括 +、-、*、/ 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。注意 两个整数之间的除法只保留整数部分。可以保证给定的逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为0的情况。ψ(`∇´)ψ我的思路题目上提示的已经很清晰了去掉括号后表达式无歧义,上式即便写成12+34+*也可以依据次序计算出正确结果。适合用栈操作运算:遇到数字则入栈;遇到算符则取出栈顶两个数字进行计算,并将结果压入栈中packagestackandqueue;importjava.util.Stack;publicclas
题目(链接)给你一个整数数组nums,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。子数组是数组中的一个连续部分。示例1:输入:nums=[-2,1,-3,4,-1,2,1,-5,4]输出:6解释:连续子数组 [4,-1,2,1]的和最大,为 6。示例2:输入:nums=[1]输出:1示例3:输入:nums=[5,4,-1,7,8]输出:23提示:1-104题解思路:动态规划判断是否需要加上当前位置,如果f[i-1]+nums[i]>=nums[i],那么nums[i]的最大子数组就是nums[i-1]的最大子数组加上nums[i];如果f[i-1]+nums[i
第一题150.逆波兰表达式求值根据逆波兰表示法,求表达式的值。有效的算符包括 +、-、*、/ 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。注意 两个整数之间的除法只保留整数部分。可以保证给定的逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为0的情况。ψ(`∇´)ψ我的思路题目上提示的已经很清晰了去掉括号后表达式无歧义,上式即便写成12+34+*也可以依据次序计算出正确结果。适合用栈操作运算:遇到数字则入栈;遇到算符则取出栈顶两个数字进行计算,并将结果压入栈中packagestackandqueue;importjava.util.Stack;publicclas
题目(链接)给你一个整数数组nums,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。子数组是数组中的一个连续部分。示例1:输入:nums=[-2,1,-3,4,-1,2,1,-5,4]输出:6解释:连续子数组 [4,-1,2,1]的和最大,为 6。示例2:输入:nums=[1]输出:1示例3:输入:nums=[5,4,-1,7,8]输出:23提示:1-104题解思路:动态规划判断是否需要加上当前位置,如果f[i-1]+nums[i]>=nums[i],那么nums[i]的最大子数组就是nums[i-1]的最大子数组加上nums[i];如果f[i-1]+nums[i
一、题目大意给你一个整数数组nums和一个整数k,判断数组中是否存在两个不同的索引i和j,满足nums[i]==nums[j]且abs(i-j)示例1:输入:nums=[1,2,3,1],k=3输出:true示例2:输入:nums=[1,0,1,1],k=1输出:true示例3:输入:nums=[1,2,3,1,2,3],k=2输出:false提示:1-1090来源:力扣(LeetCode)链接:https://leetcode.cn/problems/contains-duplicate-ii著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。二、解题思路本来要刷220.存在
上次刷没刷完整,和李哥做字节的题感觉先前刷的题白刷了,故打算从头到尾完整走一遍。二分法1-1.二分查找力扣题目链接给定一个n个元素有序的(升序)整型数组nums和一个目标值target,写一个函数搜索nums中的target,如果目标值存在返回下标,否则返回-1。示例1:输入:nums=[-1,0,3,5,9,12],target=9输出:4解释:9出现在nums中并且下标为4示例2:输入:nums=[-1,0,3,5,9,12],target=2输出:-1解释:2不存在nums中因此返回-1提示:你可以假设nums中的所有元素是不重复的。n将在[1,10000]之间。nums的每个元素都将在
一、题目大意给你一个整数数组nums和一个整数k,判断数组中是否存在两个不同的索引i和j,满足nums[i]==nums[j]且abs(i-j)示例1:输入:nums=[1,2,3,1],k=3输出:true示例2:输入:nums=[1,0,1,1],k=1输出:true示例3:输入:nums=[1,2,3,1,2,3],k=2输出:false提示:1-1090来源:力扣(LeetCode)链接:https://leetcode.cn/problems/contains-duplicate-ii著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。二、解题思路本来要刷220.存在
上次刷没刷完整,和李哥做字节的题感觉先前刷的题白刷了,故打算从头到尾完整走一遍。二分法1-1.二分查找力扣题目链接给定一个n个元素有序的(升序)整型数组nums和一个目标值target,写一个函数搜索nums中的target,如果目标值存在返回下标,否则返回-1。示例1:输入:nums=[-1,0,3,5,9,12],target=9输出:4解释:9出现在nums中并且下标为4示例2:输入:nums=[-1,0,3,5,9,12],target=2输出:-1解释:2不存在nums中因此返回-1提示:你可以假设nums中的所有元素是不重复的。n将在[1,10000]之间。nums的每个元素都将在