代码随想录算法训练营
2023-12-15 04:55:10
Day 01 |?704.?二分查找、27.?移除元素
- ?今日学习的文章链接和视频链接
- ?自己看到题目的第一想法
- ?看完代码随想录之后的想法?
- ?自己实现过程中遇到哪些困难?
- ?今日收获,记录一下自己的学习时长
Day 02 | 977.有序数组的平方?,209.长度最小的子数组?,59.螺旋矩阵II
?977.有序数组的平方?
题目建议:?本题关键在于理解双指针思想?
题目链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台
文章讲解:代码随想录
class Solution {
public:
vector<int> sortedSquares(vector<int>& nums) {
int leftIndex = 0;
int rightIndex = nums.size()-1;
auto nums_out = nums;
int i = 1;
while(leftIndex<=rightIndex){
if (nums[leftIndex]*nums[leftIndex] > nums[rightIndex]*nums[rightIndex]){
nums_out[nums.size()-i] = nums[leftIndex]*nums[leftIndex];
i++;
leftIndex++;
}else{
nums_out[nums.size()-i] = nums[rightIndex]*nums[rightIndex];
i++;
rightIndex--;
}
}
return nums_out;
}
};
?
class Solution:
def sortedSquares(self, nums: List[int]) -> List[int]:
leftIndex = 0
rightIndex = len(nums)-1
# nums_out = nums # 不能这么做,这不是拷贝而是原地修改
nums_out = [None]*len(nums)
for i in range(len(nums)):
if nums[leftIndex] ** 2 > nums[rightIndex] ** 2:
nums_out[len(nums)-i-1] = nums[leftIndex]**2
leftIndex +=1
else:
nums_out[len(nums)-i-1] = nums[rightIndex]**2
rightIndex -=1
print (nums_out)
return nums_out
209.长度最小的子数组
题目建议:?本题关键在于理解滑动窗口,这个滑动窗口看文字讲解?还挺难理解的,建议大家先看视频讲解。??拓展题目可以先不做。?
题目链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台
文章讲解:代码随想录
?59.螺旋矩阵II
题目建议:??本题关键还是在转圈的逻辑,在二分搜索中提到的区间定义,在这里又用上了。?
题目链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台
文章讲解:代码随想录
?总结?
题目建议:希望大家?也做一个自己?对数组专题的总结
文章链接:代码随想录
文章来源:https://blog.csdn.net/DCCSDNDC/article/details/134986428
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!