LeetCode探索:初级算法(数组篇第一刷)

LeetCode初级算法练习——数组篇 数组篇26. 从排序数组中删除重复项给定一个有序数组,你需要原地删除其中的重复内容,使每个元素只出现一次,并返回新的长度。不要另外定义一个数组,您必须通过用 O(1) 额外内存原地修改输入的数组来做到这一点。示例:给定数组: nums = [1,1,2], 你的函数应该返回新长度 2, 并且原数组nums的前两个元素必须是1和2 不需要理会新的数组长度后面的元素Given a sorted ar... 阅读详情

近来打算系统地学习一波数据结构与算法,因此根据LeetCode官方推出地经典面试题目清单开始刷题。本篇文章记录了初级算法中的数组篇,为了追求速度,我先大概地过一遍,每道题没有去分析多种解法,可能不是最优解,仅仅为我做题时的思路,若有什么错误的地方,欢迎大佬们指正哈!
ps:第一次写博客,格式之类的难免有所欠妥,还请大家谅解!

从排序数组中删除重复项

在这里插入图片描述解法:双指针
解析:题中数组是有序的,因此重复的值肯定是相邻的,且从第2个值开始才有可能重复,所以遍历数组1~n-1。使用变量cur来作为当前指针,若数组中相邻的值重复,cur保持不变;若数组中出相邻的值不同,则让当前值覆盖cur中的值,cur指向下一个位置。

class Solution {
public:
    int removeDuplicates(vector<int>& nums) {
        int n = nums.size();
        if(n == 0) return 0;
        if(n == 1) return 1;
        int cur = 1;
        for(int i = 1; i < n; i++) {  //从第二个值开始遍历
            if(nums[i] == nums[i-1]) {
                continue;
            } else {
                nums[cur++] = nums[i];
            }
        }
        return cur;
    }
};

时间复杂度:O(n) ,遍历一次数组
空间复杂度:O(1), 需要用到常量空间

买卖股票的最佳时机 II

在这里插入图片描述
解法:贪心算法
解析:所有上涨交易日都买卖(赚到所有利润),所有下降交易日都不买卖(永不亏钱)。

class Solution {
public:
    int maxProfit(vector<int>& prices) {
        int res = 0;
        for(int i = 1; i < prices.size(); i++) {
            if(prices[i] - prices[i-1] > 0) 
                res += prices[i] - prices[i-1]; 
        }
        return res;
    }
};

时间复杂度:O(n) ,遍历一次数组
空间复杂度:O(1), 需要用到常量空间

旋转数组

在这里插入图片描述
解法:使用反转
解析:这道题要求使用原地算法,因此不能开额外的数组。首先要注意的是k的大小,当k大于数组n的长度时,数组每移动n次,就回到了原来的位置,相当于没有改变位置。可以将k对n取模,减少不必要的时间消耗
ps:接下来我开始循环k次,一位一位地移动位置,结果超时了。后面看了官方题解,看到了一种捷径式解法:反转
超时代码:

class Solution {
public:
    void rotate(vector<int>& nums, int k) {
        int n = nums.size();
        k = k % n;
        while(k--) {
            int t = nums[n-1];   //最后一位的值
            for(int i = n-1; i >= 1; i--) {
                nums[i] = nums[i-1];
            }
            nums[0] = t;
        }
    }
};

时间复杂度:O(k * n) ,遍历k次数组
空间复杂度:O(1), 需要用到常量空间

官方题解:

原始数组 ------------- : 1 2 3 4 5 6 7
反转所有数字后 ---- : 7 6 5 4 3 2 1
反转前 k 个数字后 - : 5 6 7 4 3 2 1
反转后 n-k 个数字后 : 5 6 7 1 2 3 4 --> 结果

class Solution {
public:
    void rotate(vector<int>& nums, int k) {
        int n = nums.size();
        if(n == 0) return;
        k = k % n;
        reverse(nums.begin(), nums.end());
        reverse(nums.begin(), nums.begin()+k);
        reverse(nums.begin()+k, nums.end());
    }
};

时间复杂度:O(n) ,反转3次
空间复杂度:O(1), 需要用到常量空间

存在重复

在这里插入图片描述
解法:排序+遍历
解析:数组排序后重复值肯定是相邻的,做个简单的遍历判断即可

class Solution {
public:
    bool containsDuplicate(vector<int>& nums) {
        int n = nums.size();
        if(n == 0 || n == 1) return false; //0或1个元素必定不会重复
        sort(nums.begin(), nums.end());
        for(int i = 1; i < n; i++) {
            if(nums[i] == nums[i-1]) return true;
        }
        return false;
    }
};

时间复杂度:O(n * logn) ,排序的时间复杂度是O(n * logn) ,遍历的时间复杂度是O(n),整个算法的时间复杂度主要由排序决定 。
空间复杂度:O(1), 需要用到常量空间

ps:若想要使用空间换时间消耗的话,可以使用哈希表。

只出现一次的数字

在这里插入图片描述
解法:位操作
解析:异或大法好!利用异或的特性(对同一个数异或两次后,相当于没有操作),因此将初始值设定为零,只出现一次的数字对0异或,结果即为这个数字的值!!位运算还是挺重要的呀!有时间还是得多练习一下,可以减少很多麻烦

class Solution {
public:
    int singleNumber(vector<int>& nums) {
        int res = 0;
        for(int i = 0; i < nums.size(); i++) {
            res ^= nums[i];
        }
        return res;
    }
};

时间复杂度:O(n) ,遍历一次数组
空间复杂度:O(1), 需要用到常量空间

两个数组的交集

在这里插入图片描述
解法:哈希表
解析:建立<int,int>类型的哈希表,将第一个数组的值存放于哈希表中,键代表数组元素的值,值代表该元素值的数量

class Solution {
public:
    vector<int> intersect(vector<int>& nums1, vector<int>& nums2) {
        vector<int> res;
        map<int, int> m;
        for(int i = 0; i < nums1.size(); i++) {
            if(!m.count(nums1[i])) m[nums1[i]] = 1; //键不存在,则赋初始值为1
            else m[nums1[i]]++;
        }
        for(int i = 0; i < nums2.size(); i++) {
            if(m.count(nums2[i]) && m[nums2[i]] > 0) //键存在,且数量大于0
                res.push_back(nums2[i]), m[nums2[i]]--;
        }
        return res;
    }
};

时间复杂度:O(max(n, m)) n是数组一的大小,m是数组二的大小
空间复杂度:O(n), 需要用到常量空间
ps:这道题我没有考虑去进阶,如n远远大于m时,可以为数组二建立哈希表,减少空间消耗,即空间复杂度可以优化为O(min(n, m)),小伙伴们如果有什么好的解法,欢迎在评论区分享emmmm

加一

在这里插入图片描述
解法:逆序遍历
解析:对数组进行原地修改,从最后一位开始逆序遍历,进行加一和取余操作,若当前值不为0,即不会产生下一个进位,就直接返回结果。考虑到99999这种连续进位的情况,当遍历整个数组后,还没有返回结果时,则在动态数组的第一位插入进位值1,返回最终结果10…00

class Solution {
public:
    vector<int> plusOne(vector<int>& digits) {
        int n = digits.size();
        for(int i = n-1; i >= 0; i--) {
            digits[i]++;
            digits[i] = digits[i] % 10;
            if(digits[i] != 0) return digits;
        }
        digits.insert(digits.begin(), 1);
        return digits;
    }
};

时间复杂度:O(n) ,遍历一次数组
空间复杂度:O(1),原地操作,只需要用到常量空间

移动零

在这里插入图片描述
解法:双指针
解析:这道题我的解法与第一道有点类似,使用cur来作为当前指针,并使用cnt来记录当前0的个数
①若存在0,则将nums[i]覆盖为0
②若不存在0,nums[i]即为原始值,cur==i

class Solution {
public:
    void moveZeroes(vector<int>& nums) {
        int cur = 0, cnt = 0;
        for(int i = 0; i < nums.size(); i++) {
            if(nums[i] == 0) {
                cnt++;
                continue;
            } else {
                nums[cur++] = nums[i];
                if(cnt > 0) nums[i] = 0;
            }
        }
    }
};

时间复杂度:O(n) ,遍历一次数组
空间复杂度:O(1),需要用到常量空间

两数之和

在这里插入图片描述
唠叨:作为LeetCode的第一道题,大家应该也是印象深刻吧!想当初因为不太习惯使用vector并且用函数来解决问题,第一道题拖了n久才去提交(还是使用暴力……),很多事情,从0到1,真的是很重要的一个过程了!比如这篇博客,写得一点都不香~
解法:遍历+哈希表
解析:此题我的解法是在遍历过程中判断哈希表中的值,实现一次遍历即可得出结果。键代表数组元素的值,值为该元素值的下标

class Solution {
public:
    vector<int> twoSum(vector<int>& nums, int target) {
        map<int, int> mapp;
        vector<int> res;
        for(int i = 0; i < nums.size(); i++) {
            if(mapp.count(target-nums[i])) {
                res.push_back(mapp[target-nums[i]]);
                res.push_back(i);
                return res;
            }
            mapp[nums[i]] = i;   //这条语言必须放在if之后
            					 //防止因为相同的值,下标被重新覆盖
        }
        return res;
    }
};

时间复杂度:O(n) ,遍历一次数组
空间复杂度:O(n),哈希表的线性空间复杂度

有效的数独

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
解法:遍历+哈希表
解析:将大宫格分为9个小的9宫格
建立三个哈希表数组
①行 :i
每次遍历时判断当前行的哈希表是否有相同的数
②列 :j
每次遍历时判断当前列的哈希表是否有相同的数
③宫格:(i / 3) * 3 + (j / 3)
每次遍历时判断当前宫格的哈希表是否有相同的数
借用一下leetcode的分析图:
在这里插入图片描述

class Solution {
public:
    bool isValidSudoku(vector<vector<char>>& board) {
        map<int, int> row[9], col[9], box[9];
        for(int i = 0; i < 9; i++) {
            for(int j = 0; j < 9; j++) {
                if(board[i][j] >= '0' && board[i][j] <= '9') {
                    int x = board[i][j] - '0';
                    //若其中任意一个条件,则不是有效的数独
                    if(row[i].count(x) || col[j].count(x) || box[(i/3)*3 + j/3].count(x))
                        return false;
                    row[i][x] = 1;
                    col[j][x] = 1;
                    box[(i/3)*3 + j/3][x] = 1;
                }
            }
        }
        return true;
    }
};

时间复杂度:O(1)
空间复杂度:O(1)
ps:这道题的时间复杂度和空间复杂度可能会有一些争议,但是81个单元格和27个map是固定的,也就是常数值,不会随输入的改变而改变

旋转图像

在这里插入图片描述
在这里插入图片描述
解法:自外向内,顺时针旋转四个值
解析:话不多说,看图
在这里插入图片描述
首先是最外一圈,旋转这4个数的值
①15 -> t ②16 -> 15 ③11 -> 16 ④5 -> 11 ⑤ t -> 5
依次类推……
在这里插入图片描述
在这里插入图片描述
再进入内圈
在这里插入图片描述

class Solution {
public:
    void rotate(vector<vector<int>>& matrix) {
        int n = matrix.size();
        int cur = 0;     //当前圈第一个元素的行与列
        while(cur < n/2) {
            for(int i = cur; i < n-cur-1; i++) {
                int t = matrix[n-i-1][cur];  
                matrix[n-i-1][cur] = matrix[n-cur-1][n-i-1]; 
                matrix[n-cur-1][n-i-1] = matrix[i][n-cur-1];
                matrix[i][n-cur-1] = matrix[cur][i];
                matrix[cur][i] = t;
            }
            cur++;
        }
    }
};

时间复杂度:O(n^2),两重循环
空间复杂度:O(1),需要用到常量空间
ps:这道题还有另一种解法,但是相对没有那么容易想到
解法:转置+翻转
解析:转置矩阵(交换matrix[i][j] 和 matrix[j][i]的值),翻转每一行

class Solution {
public:
    void rotate(vector<vector<int>>& matrix) {
        int n = matrix.size();
        for(int i = 0; i < n; i++) {
            for(int j = 0; j < i; j++) {
                int t = matrix[i][j];
                matrix[i][j] = matrix[j][i];
                matrix[j][i] = t;
            }
        }
        for(int i = 0; i < n; i++) {
            reverse(matrix[i].begin(), matrix[i].end());
        }
    }
};

时间复杂度:O(n^2),转置和反转都需要用到n的平方
空间复杂度:O(1),需要用到常量空间

总结:

数组类型的问题目前用得比较多的解法是双指针、排序、位操作、哈希表和贪心算法,还是得具体问题具体分析,因此多实践是很重要的。由于线性代数学得不扎实,一些矩阵的特性不太了解,以后遇到旋转或移动的问题,没有思路的时候可以考虑一下倒置和反转hh。

leetcode刷题之轮转数组(超详解刷爆力扣) 大家好啊,我是小生啊🙈🙈🙈 我可没忘记带着大家刷题呢,嘿嘿兄弟姐妹们,我来啦😎😎😎让我们开始我们今天快乐的力扣刷题之旅吧,啦啦啦~~~ 😝😜😙 🌞🌞🌞 让我们一题多解,刷爆力扣,冲冲冲👊👊👊 力扣练习:轮转数组🏃🏃🏃一.🏠题目描述二.🏠题目分析三.🏠解决方法1.🚀思路一:化尾为头再循环挪动2.🚀思路二:开辟新空间优化时间3.🚀思路三:三次逆置(大神方法)四.🏠代码实现1.🚀方法一代码详解2.🚀方法二代码详解3.🚀方法三代码详解五. 🏠结语 一.🏠题目描述 嘿嘿,兄弟们,老规矩,直接看题: 🙊 🙊 阅读详情

相关推荐

Leetcode-How-What 力扣Leetcode刷题指南

Leetcode-How-What 力扣Leetcode刷题指南 About the way how to use Leetcode wisely for preparing the interview and the solutions to some Leetcode problems’. 怎样为准备面试机智聪明的刷题(高效刷题)以及一些题目的题解。 同 github 链接: https:/...

edwardwjz的博客 4521

Leetcode刷题1:初级算法

同另一篇文章,不过markdown用起来更方便。 1.1 反转字符串 知识点:就是双指针,对称进行交换,当p>q时结束。很简单。 坑:c++ STL库掌握不牢。 vector矢量的end()迭代器不是最后一个元素的指针,end()-1才是。 void reverseString(vector<char>& s) { if(s.size()<1) retu...

wbzhang233的博客 625

LeetCode卡片探索-初级算法

卡片探索-初级算法数组删除排序数组中的重复项买卖股票的最佳时机 II字符串链表树排序和搜索动态规划设计问题数学其他 LeetCode上知识卡片之初级算法的刷题记录 数组 删除排序数组中的重复项 难点在于原地删除的同时不想时间复杂度太高的话,可以考虑双指针。一个指针遍历数组判断是否为重复元素,一个指针用来搜集不重复元素并把他们安排到数组前列。 class Solution: def removeDuplicates(self, nums: List[int]) -> int: i

屏幕里的日与夜 1451

136.只出现一次的数字

LeetCode-cn 探索 初级算法 题目描述: 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 说明: 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 示例 1: 输入: [2,2,1] 输出: 1 示例2: 输入: [4,1,2,1,2] 输出: 4 代码: c语言: 解题思路:异或,对于...

baidu_35812512的博客 138

LeetCode初级算法笔记整理

LeetCode初级算法笔记整理,印象笔记导出的HTML格式文件。

别再只跑recon-all了!FreeSurfer实战:从T1图像到freeview可视化的完整避坑指南

本文详细解析FreeSurfer从T1图像处理到freeview可视化的全流程,包括环境配置、recon-all深度解析、高级可视化技巧及性能优化策略。特别针对常见错误提供解决方案,帮助用户高效完成MRI数据分析,避免常见陷阱。

weixin_33404102的博客 353

【力扣】189. 轮转数组

【力扣】189. 轮转数组

Danger的博客 703

特征模理论指导滤波天线设计的优势和方法

本文探讨了特征模理论在滤波天线设计中的应用优势和方法。特征模理论通过分析天线结构的本征模特性,突破了传统经验设计的局限,实现了辐射与滤波功能的一体化设计。文章重点阐述了如何利用模式显著性(MS)和模式加权系数(MWC)来指导辐射零点的产生,揭示了辐射零点形成的物理机制。通过特征模分析,设计师可以明确调控天线结构和馈电系统,优化滤波性能。这种方法为现代多频/宽带滤波天线设计提供了理论依据和实用工具,显著提升了设计效率和性能指标。

qq_64207806的博客 957

LeetCode(力扣)数组篇 JAVA刷题详解

是不是有许多小伙伴在刷力扣的时候感觉无从下手?从头按顺序开始刷的童鞋们可能会比较有感触,为什么才第四题就感觉很难了?没关系,本文将对力扣的 1-500 题中不需要会员的数据结构与算法题目(数据库与 shell 除外)进行分类,并推荐一个刷题的顺序。完全零基础可以刷题吗?不能,至少要基本掌握一门计算机语言的语法。但现在在网上随便搜一下就能搜到许多关于计算机语言的教程。当然,最好还是上一下正规的课程。刷题顺序很重要吗?重要。按照题目类别结构化地刷题的速度不仅更快,而且可以在刷完一类题之后进行总结。

weixin_61779644的博客 2538

详细对比模型训练和模型精调

当我们进行模型精调(Fine-Tuning)和模型训练时,我们需要考虑到不同的步骤和目标。

pumpkin84514的博客 1852

flowable表中文注释-表结构-主要表结构字段注释-sql脚本

flowable表结构中文注释,主要表结构字段注释,sql执行脚本,包含MySQL版和Oracle版sql脚本。

bushinakeshu的博客 1069

LeetCode刷题顺序

简介 是不是有许多小伙伴在刷力扣的时候感觉无从下手?从头按顺序开始刷的童鞋们可能会比较有感触,为什么才第四题就感觉很难了?没关系,本文将对力扣的 1-700 题中不需要会员的数据结构与算法题目(数据库与 shell 除外)进行分类,并推荐一个刷题的顺序。 完全零基础可以刷题吗? 不能,至少要基本掌握一门计算机语言的语法。但现在在网上随便搜一下就能搜到许多关于计算机语言的教程。当然,最好还是上一下正规的课程。 刷题顺序很重要吗? 重要。按照题目类别结构化地刷题的速度不仅更快,而且可以在刷完一类题之后进行总

qq_42548880的博客 8908

Geant4学习——入门(基本概念、Geant4工具包的结构、强制类、可选类)

Geant4是由欧洲核子研究组织基于C++面向对象技术开发的蒙特卡罗应用软件包,用于模拟粒子在物质中输运的物理过程。由于具有良好的通用性和扩展能力,Geant4在涉及微观粒子与物质相互作用的诸多领域获得了广泛应用。 第一部分 Geant4的基本概念 HEP中的模拟是“虚拟现实”。仿真既可用于在研发阶段帮助设计探测器,又可用于物理研究中了解探测器的响应。为了创建这样的虚拟现实,我们需要对粒子间的相互作用,几何形状和材料进行建模,以便将基本粒子传播到检测器中。我们还需要描述检测器生成原始数据的灵敏度。 Gea

M_M-铭的博客 2万+

力扣网-探索初级算法-数组篇

本篇博客题目来自力扣网,分组为初级算法下的数组。适合作为数组方面的练习。上面刷题测试用例真的丰富,总是有很多考虑不到的地方。第一遍做完了,很多解法都不是最优解。主要是分享下。 探索初级算法—力扣网链接 数组 题目的话打开上面的链接就可以看到,这里就不复述了。 从排序数组中删除重复项 public int removeDuplicates(int[] nums) { int...

小jinx的博客 1231

传感器校准与标定:传感器的灵敏度校准_(11).常见传感器的灵敏度校准方法

线性校准:适用于传感器输出与输入之间存在线性关系的情况。通过收集数据并使用最小二乘法拟合线性方程,可以确定斜率和截距,从而实现校准。非线性校准:适用于传感器输出与输入之间存在非线性关系的情况。通过收集数据并使用非线性拟合方法(如最小二乘法),可以确定多项式或其他非线性方程的参数,从而实现校准。温度补偿校准:适用于传感器在不同温度下输出特性变化的情况。通过收集不同温度下的数据并使用温度补偿方程,可以提高传感器在不同温度下的测量精度。其他校准方法。

2401_87715305的博客 918

第3章: MMU Interval Notifier 区间通知器的核心原理⭐

摘要:区间级内存通知机制分析 本文分析了Linux内核中区间级内存通知机制(mmu_interval_notifier)的设计原理与实现。该机制针对传统全局通知(mmu_notifier)存在的性能开销大、无法精确控制等问题,通过引入区间树(Interval Tree)实现精确匹配,仅当内存变化与注册区间重叠时才触发回调。核心优势包括:1)O(log n + k)的高效查找性能;2)支持独立管理各内存区间;3)实现高并发处理不同区间的失效事件。

图形/计算GPU的驱动与虚拟化技术分享园地 2026

【力扣篇一】数组30道题汇总

力扣,数组三十题。

成长之路 1722

用python画带有正负值的条形图

常见的条形图只能表现数据的大小,却不能表现值的正负关系。但是其实仅仅使用`pandas`和`matplotlib`两个包就可以实现y轴负轴的添加以及负值的显示,并且可以为正负值分别设置不同的颜色,让条形图看上去更加清晰,易于我们分析

weixin_44853840的博客 5384

菜鸡力扣初级算法刷题记录(持续更新)

直接参考力扣官网初级算法面试题单本贴旨在记录自己的刷题感悟以供自己及后来者参考和回顾,也为刚开始刷题的小伙伴提供一个样本点刷题语言:c++

weixin_43500408的博客 1078

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

力扣(leetcode)题目总结——数组篇

本系列文章初衷是为了按类别整理出力扣(leetcode)最经典题目,一共100多道题,每道题都给出了非常详细的解题思路、算法步骤、代码实现。因为力扣题目顺序是随机的,并没有按照算法分类,导致同一类型的算法强化训练不够。所以本系列文章就是来帮你完成算法分类,针对每种算法做强化训练,保证让你以后遇到题目直接秒杀。本篇文章主要是针对数组相关的算法题,一次性帮你搞定所有数组题!

weixin_46571171的博客 2528

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

<LeetCode天梯>“交个朋友&一起变强”之攻略集合部分三 | 初级算法 | Python

????作者简介:大家好,我是车神哥,府学路18号的车神???? ⚡About—>车神:从寝室到实验室最快3分钟,最慢3分半(那半分钟其实是等红绿灯) ????个人主页:应无所住而生其心的博客_府学路18号车神_优快云博客 ????点赞➕评论➕收藏 == 养成习惯(一键三连)???? ????本系列主要以刷LeetCode(力扣)网站的各类题为标准,实现自我能力的提升为目标⚡ ⚡希望大家多多支持????~一起加油 ???? 专栏《LeetCode天梯》 其他专栏: 《LeetCode天梯》 《

车手只需要车和手,压力来自轮胎 1443

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

LeetCode刷题笔记(一)——初级算法——数组

❤ 2021.8.26 ❤ 知道LeetCode这个东西有一两年了,一见到就很有学习的冲动,但是自己太菜,一直做比较简单的硬件开发,没怎么接触过算法数据结构之类的东西,当时选了最简单的第一题就被劝退了,甚至我都不知道答题窗口里的函数结构怎么用。。。 前两天师妹心血来潮要刷LeetCode,我趁机也刷一刷也好有人能讨论讨论。 →→→时光倒流! ❤ 2021.8.24 ❤ 今天的题目是 删除排序数组中的重复项 芜湖挺简单的,但是不会。。。 根据我多年来的考研经验,不会的题先背答案再说! 答

ooorczgc的博客 849

leetcode题解-初级算法数组篇(1-5题)

7月保研的夏令营已经告一段落了,面试中被问了很多算法的问题,感觉自己算法知识有些许薄弱(acm大神忽略),所以准备开始刷leetcode,顺便也为面试准备,因为想把刷leet里面的一些心得给记下来,便于之后复习,所以在这里开博。之后会按里面的篇章顺序进行更新,喜欢的可以给文章点一个赞,如果文章有任何问题或者有更好的解法可以在评论中给出,下面开始题解,本篇章为初级算法的数组篇(1-5题): 第一题...

纸鱼的笔记 1930

力扣刷题之数组篇

二分法、双指针

qq_51423963的博客 1169

你有多久没有坚持过一件事情了?如果没有就来刷一轮力扣LeetCode

选择一样你想做的事情,坚持21天。如果没有想好,那就先来刷一轮力扣吧!~

车手只需要车和手,压力来自轮胎 1360

力扣刷题篇之二维数组

本系列是个人力扣刷题,刷题顺序按照[力扣刷题攻略] 今天写了二维数组,要难一点,这篇文章的题目还要自己多敲敲最快的代码。

m0_66076989的博客 639
下一篇: LeetCode 200. 岛屿数量(深度优先搜索 || 广度优先搜索)
a_Gen!
博客等级 码龄9年 22粉丝 10原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值