代码随想录第一天和第二天的拓展题

Ragflow技术栈分析及二次开发指南 Ragflow是目前团队化部署大模型+RAG的优质方案,不过其仍不适合直接部署使用,本文将从实际使用的角度,对其进行二次开发 阅读详情
  • 26.删除排序数组中的重复项

  • 示例 1:

    输入:nums = [1,1,2]
    输出:2, nums = [1,2,_]
    解释:函数应该返回新的长度 2,并且原数组 nums 的前两个元素被修改为1, 2。
    不需要考虑数组中超出新长度后面的元素。
  • 思路:
  • 可以用双指针方法来遍历数组,定义一个fast指针用来遍历,一个slow指针用来确定遍历之后满足条件的数组的大小,当满足nums[fast] != nums[fast - 1]时,就nums[slow] = nums[fast],然后让slow增加,所以综合下来是nums[slow ++] = nums[fast]。
  • class Solution {
    public:
        int removeDuplicates(vector<int>& nums) {
            int slow = 1, fast = 1;
            //slow就是最后数组的大小,fast是用来遍历数组的
            int n = nums.size();
            if(n == 0) return 0;
            while(fast < nums.size())
            {
                if(nums[fast] != nums[fast - 1])
                {
                    nums[slow ++] = nums[fast];
    
                }
                fast ++;
            }
            return slow;
        }
    };


  • 283.移动零

 思路:也是双指针的方法,定义left指针和right指针,让right指针去遍历,如果nums[right] != 0就让nums[left]和nums[right]交换,并且让left++更新,如果等于0就让right++。
class Solution {
public:
    void moveZeroes(vector<int>& nums) {
        int left = 0, right = 0, n = nums.size();
        while(right < n)
        {
            if(nums[right])
            {
                swap(nums[right], nums[left]);
                left ++;
            }
            right ++;
        }
    }
};

  • 844.比较含退格的字符串

 
class Solution {
public:
    string building(string &s)
    {
        string ret;
        for(auto c : s)
        {
            if(c != '#')
            {
                ret.push_back(c);
            }
            else if(!ret.empty())
            {
                ret.pop_back();
            }
        }
        return ret;
    }
    bool backspaceCompare(string s, string t) {
        return building(s) == building(t);
    }
};

59.螺旋矩阵II

class Solution {
public:
    vector<vector<int>> generateMatrix(int n) {
        int count = 1;// 开始的数字大小
        int offset = 1;// 需要控制每一条边遍历的长度,每次循环右边界收缩一位
        int loop = n / 2;//循环次数
        int mid = n / 2;//中间位置
        int startX = 0, startY = 0;
        int i, j;
        vector<vector<int>> ret(n, vector<int>(n, 0));
        while(loop --)
        {
            i = startX, j = startY;
            for(j = startY; j < n - offset; j++)
            {
                ret[startX][j] = count++;
            }

            for(i = startX; i < n - offset; i ++)
            {
                ret[i][j] = count++; 
            }

            for(;j > startY; j--)
            {
                ret[i][j] = count++;
            }

            for(; i > startX; i--)
            {
                ret[i][j] = count++;
            }

            
            startX ++;
            startY ++;
            offset += 1;
            
        }
        if(n % 2)
        {
            ret[mid][mid] = count;
        }
        return ret;
    }
};

相关推荐

Redis+Unity 数据库搭建

游戏中需要存放排行榜等数据,而且是实时存放,所以就涉及到数据库的问题。这里找服务器大神了解到可以用Redis来做存储,免费的效率极高。

chaixinke的专栏 879

代码随想录算法训练营第二天 |977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II ,总结

数组,滑动窗口,螺旋模拟

m0_52925186的博客 1268

DoubletFinder实战:如何优化参数提升scRNA-seq双细胞识别准确率?

本文深入探讨了如何通过优化DoubletFinder参数提升scRNA-seq双细胞识别准确率。详细解析了pK和nExp参数的影响机制,提供了系统化的参数优化流程和多样本整合策略,并结合真实数据集演示了验证方法与高级应用场景,帮助研究人员获得更可靠的分析结果。

weixin_28523493的博客 339

代码随想录算法训练营第二天:数组part2

状态思路理解完成 30%代码debug完成 60%代码模板总结并抽象出来 100%

RessCris的博客 215

Applied Intelligence投稿经验分享(正在投稿中)

这几天在投稿Applied Intelligence这个期刊,过程很曲折,反反复复,因此写一篇经验分享,希望能记录一下自己的过程,也能给其他人一些帮助(可以在评论区讨论),提醒一下,一定要写一些声明,不会写、不知道写啥就看第四章的第二个问题。

weixin_55988068的博客 1万+

ESP32天线阵列实现Wi-Fi空间成像与无直视定位

Wi-Fi信道状态信息(CSI)是OFDM系统中表征多径传播特性的基础物理层参数,其复数值包含幅度与相位,可反映无线环境的空间特征。基于CSI的射频感知技术,通过提取子载波级信道响应,结合阵列信号处理,实现到达角(AoA)估计与深度映射,本质是将通信链路重构为空间域传感器。该技术无需专用雷达硬件,具备低成本、被动式、隐私友好等工程优势,在室内定位、行为识别、仓储导航等场景具有广泛落地价值。本文聚焦ESP32平台,详解多芯片相位同步、CSI零拷贝采集、嵌入式MUSIC算法及信道图谱轻量化部署等关键实现。

weixin_30632267的博客 236

代码随想录第二天(待补充)

题目建议: 本题关键在于理解双指针思想 题目链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台文章讲解:代码随想录视频讲解: 双指针法经典题目 | LeetCode:977.有序数组的平方_哔哩哔哩_bilibili第一时间想到用暴力的方法来解决,先把数据平移再对新数组进行排序考虑到题目是非递减数组和负数,同时考虑到双指针,我的思路是找到第一个非负元素和负数最小的两个作为快指针进行大小比较,满指针指向新数组要填充的,也就是慢指针递增,但是找到第一个非负元素总是会出问题?代码随想录提出的办法是

weixin_47455684的博客 580

SAP 物料的分割评估

SAP 物料的分割评估 前言 本文主要讲解SAP中物料的分割评估,通过分割评估来区分出同一物料不同来源下的核算方式。例如:同一物料分为自产或者采购,或者同一物料分为进口或者国内采购等。 一、概述 分割评估一般用于以下场景: 1、物料分为内部采购和外部采购; 2、物料分属于进口或者国内采购; 3、物料分属于不同的批次; 4、物料分为自制或者采购。 由于物料的来源不同可能导致物料的价格或者性质不同,需要用不同价格来区分出 二、配置步骤 1.激活分割评估 ...

五谷散熊 6791

代码随想录算法训练营第二天 | 209.长度最小的子数组、59.螺旋矩阵II、58. 区间和、44. 开发商购买土地

状态:√类别:滑动窗口难度:mid还可以,调试了两次ac了,基本思路没问题,边界条件要明确状态:×类别:转圈逻辑难度:mid做了n次了还是不记得,有基本思路,但是忘记了要定义四个变量状态:×类别:前缀和难度:mid昨天刚做过前缀和的题...思想要记牢,熟悉ACM模式,开始使用了Map超时了,可以用数组。

weixin_47495480的博客 1466

SAP公司间STO业务解析(包含主数据解析、后台配置解析、前台业务演示)

SAP公司间STO业务解析

ww114784的博客 1017

【YOLOv8改进-注意力机制】BRA(bi-level routing attention ):双层路由注意力

【YOLOv8改进-注意力机制】BRA(bi-level routing attention ):双层路由注意力我们提出了一种新颖的动态稀疏注意力机制,通过双层路由实现更加灵活且具有内容感知的计算分配。

专注于图像领域,主要研究内容包括计算机视觉和深度学习,特别是在图像分类、目标检测和图像生成等方面有深入的研究和实践经验。 3169

代码随想录算法训练营第二天

看到题干的第一时间想到的还是暴力解法,但是果断选择看一下卡尔的视频去理解双指针的解法,这里主要问题在于需要考虑有序数组头尾两端在平方后依然应为最大的两个值,此时比较两平方后的数值更大的移至新的有序数组最右端,同时其下方的对应指针也应对应向右或向左移动,较小的数值则留下和指针移动后指向的下一个数字平方后比较。总而言之,数组的问题除了部分很明显的可以直接暴力解法破解以外,目前遇到的大部分都是可以用双指针或者指针的思想去破解的,收获很大,成就满满的一天。: 本题关键在于理解双指针思想。977.有序数组的平方。

2203_76044381的博客 266

C#实现图片裁剪 (附完整源码)

C#实现图片裁剪 (附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 505

代码随想录第二天

这个滑动窗口看文字讲解 还挺难理解的,建议大家先看视频讲解。拓展题目可以先不做。: 本题关键还是在转圈的逻辑,在二分搜索中提到的区间定义,在这里又用上了。:希望大家 也做一个自己 对数组专题的总结。: 本题关键在于理解双指针思想。: 本题关键在于理解滑动窗口。977.有序数组的平方。209.长度最小的子数组。

weixin_54014099的博客 238

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

代码随想录训练营-福工研二(日常更新进度1/60)

题目建议: 大家能把 704 掌握就可以,35.搜索插入位置 和 34. 在排序数组中查找元素的第一个和最后一个位置 ,如果有时间就去看一下,没时间可以先不看,二刷的时候在看。题目建议: 暴力的解法,可以锻炼一下我们的代码实现能力,建议先把暴力写法写一遍。先把 704写熟练,要熟悉 根据 左闭右开,左闭右闭 两种区间规则 写出来的二分法。题目建议: 了解一下数组基础,以及数组的内存空间地址,数组也没那么简单。数组理论基础,②704. 二分查找,③27. 移除元素。

qq_41346239的博客 135

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

代码随想录算法训练营第二天:数组的再学习

​​‍。

2302_79934729的博客 1649

代码随想录算法训练营第一天 | 704. 二分查找、27. 移除元素

数组理论基础。

lakari的博客 458

代码随想录算法训练营第二天| 209.长度最小的子数组 59.螺旋矩阵II 区间和 开发商购买土地

如果基础不好的录友,建议直接视频讲解,这样避免很多时间浪费,因为没接触过的算法,不是轻易就能靠自己思考想出来的。,这个滑动窗口看文字讲解 还挺难理解的,建议大家先看视频讲解。拓展题目可以先不做。前缀和是一种思维巧妙很实用 而且 很有容易理解的一种算法思想,大家可以体会一下。: 本题关键还是在转圈的逻辑,在二分搜索中提到的区间定义,在这里又用上了。:希望大家 也做一个自己 对数组专题的总结。: 本题关键在于理解滑动窗口。209.长度最小的子数组。

a61679434973的博客 638

代码随想录算法训练营 DAY2 |滑动窗口与螺旋矩阵

两天的数组专题刷下来,感觉对数组的认识提升了一个档次。从基础的二分查找到精巧的双指针、滑动窗口,再到实用的前缀和,每一种方法都对应着一类问题。我深刻体会到,数据结构与算法的学习,就是不断积累这些优质的“思维模型”。按照 Carl 哥的建议,如果对某个算法没接触过,直接看视频讲解是最高效的,可以避免自己钻牛角尖浪费时间。今天的题目感觉技巧性更强了,不再是简单的遍历,而是需要用到一些非常巧妙的思维模型,比如。除了 LeetCode 的主线任务,我还完成了两个 Kamacoder 的题目,专门练习。

m0_54812357的博客 1040

代码随想录算法训练营第二天| LeetCode209.长度最小的子数组、LeetCode59.螺旋矩阵II、拓展58.区间和、44.开发商购买土地。

LeetCode209.长度最小的子数组、LeetCode59.螺旋矩阵II、拓展58.区间和、44.开发商购买土地

qq_64036065的博客 1269

代码随想录算法训练营打卡第二天|209.长度最小的子数组,59.螺旋矩阵 II,拓展题:区间和,数组总结

数组的内存地址连续,下标从0开始,便于随机查找,插入和删除操作较为复杂。二维数组的表示为n[i][j],为矩阵形式,行和列的下标都从0开始。

2301_76826732的博客 418

代码随想录算法训练营第二天 | 有序数组的平方、长度最小的子数组、螺旋矩阵II

写的解法是和leecode editorial版本一样 从后往前放result的,用result的index而不是nums的双指针,这样不用compare中间。但定义result的时候忘记自己n的定义是数组最后一个index而不是size了,忘记了n+1导致见证了c++版overflow的bug。随想录的解法是右边界loop index,看到这里 我想到了 左边界应该就是确认一个最大的符合要求的值,找到了就compare并更新result。,这个滑动窗口看文字讲解 还挺难理解的,建议大家先看视频讲解。

lakari的博客 811

代码随想录训练营第二天|209.长度最小的子数组、59. 螺旋矩阵、(卡子哥自选)区间和、总结

拓展练习:开发商购买土地。

m0_72625635的博客 675

补代码随想录算法训练营第二天 | 977. 有序数组平方、209.长度最小的子数组 ,59.螺旋矩阵II

本题关键在于理解滑动窗口,这个滑动窗口看文字讲解 还挺难理解的,建议大家先看视频讲解。拓展题目可以先不做。最近比较忙,又跳过一天。螺旋矩阵真的好秀,四条边都转的不一样,就像在做证明题。: 本题关键还是在转圈的逻辑,在二分搜索中提到的区间定义,在这里又用上了。: 本题关键在于理解双指针思想。977.有序数组的平方。209.长度最小的子数组。

2301_82038730的博客 401

代码随想录训练营第二天(数组)

209.长度最小的子数组题目建议: 本题关键在于理解滑动窗口,这个滑动窗口看文字讲解 还挺难理解的,建议大家先看视频讲解。拓展题目可以先不做。

m0_61913508的博客 283

代码随想录算法训练营第二天 | 数组 Part02

(1)滑动窗口:不断的调节子序列的起始位置和终止位置,从而得出我们要想的结果。(2)滑动窗口也可以理解为双指针法的一种,只不过这种解法更像是一个窗口的移动。

g724354的博客 606

代码随想录算法第二天| LeetCode209长度最小的子数组、LeetCode59螺旋矩阵Ⅱ、KamaCoder58区间和、KamaCoder44开发商购买土地

思路与感想:早上七点起来看了眼题单,发现是写过的题目。写了二十分钟,未果。动态窗口的思想脑子里面是清楚的,但由于我对sum的处理是起始位置加终止位置,导致了我不知道遇到起始位置与终止位置重合时以及初始位置二者正好相同的情况如何处理。于是去看了卡哥的视频讲解,发现原来sum处理时只需要加终止位置的值即可!多么美妙而简单的思路我却没有想到,但此刻我知道了它,希望以后将其掌握。此外便是双指针的设计,我总习惯下意识用while,使得双指针单独设置在最外边。

兑现自己能兑现的天赋吧 1011
上一篇: 回溯算法 ----- 第2天
下一篇: 代码随想录第四天--24. 两两交换链表中的节点、19.删除链表的倒数第N个节点、面试题 02.07. 链表相交、142.环形链表II
七人酒
博客等级 码龄4年 51粉丝 65原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值