LeetCode

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:/... 阅读详情

目录

简要

数组

1、考虑是否可用双指针

2、考虑是否先进行排序 nums.sort();

3、指针是否越界要格外注意

4、使用数组时经常要使用到排序

数学相关

双指针

字符串

1、常用方法

2、遍历字符串子串的方法

3、StringBuilder

动态规划

背包问题

a. 完全背包问题

b.0-1背包问题

回溯算法


简要

该文章对leetcode常用算法解法和套路进行总结。

数组

1、考虑是否可用双指针

双指针从左到右:求链表是否有环

双指针中间向两边:回文子串

双指针两边向中间:求容器乘水的最大值

2、考虑是否先进行排序 nums.sort();

如:三数之和

3、指针是否越界要格外注意

如:三数之和,回文子串

4、使用数组时经常要使用到排序

a.数组排序

Integer[] nums = new Integer[2];

Arrays.sort(nums);

Arrays.sort(nums, new Comparator<Integer>() {
    public int compare(Integer o1, Integer o2) {
        return 0;
    }
});

b.集合排序

Collections.sort(list,new Comparator<Integer>(){

    public int compare(Integer o1, Integer o2){

        return o1-o2;
    }

});

c.集合和数组相互转换

Integer[] nums = new Integer[2];
List<Integer> list = Arrays.asList(nums);
Integer[] arr = list.toArray(new Integer[list.size()]);

d、char数组转字符串

char[] chars = {'1','2','3'};
String str = new String(chars);//123

数学相关

1、i % 10 等于i的最后一个数字。可以用来获取整数的最后一个数字。

如:123%10 = 3;12%10=2;1%10=1;0%10=0;-1%10=-1;-12%10=-2;2%10=2;

2、i/10 可以用来去掉i的最后一位。while(i != 0){} i等于0时跳出循环。

如:123/10=12;12/10=1;1/10=0;

3、求最大或最小时,经常要用到Math.min(a,b)或Math.max(a,b);

双指针

1、可以都向左遍历。如:循环链表

2、可以中间向两边。如: 回文子串

3、可以一左一右往中间。如:求容器乘水的最大值

4、同频率向一个方向,类似滑动窗口。如:删除倒数第n个链表

链表

1、可能要创建新链表

2、一般要建立头指针

3、简单且重复操作的可能可以用递归(这点在树的算法题中也适用)

86. 分隔链表 (创建新链表、并拼接)

82. 删除排序链表中的重复元素 II (链表指针判断,删除节点)

字符串

1、常用方法

如:String s = abcdefg;

int len = s.length();//求长度

String ss = s.substring(i,j);//字符串截取前闭后开 [) ;i=1 j=3 得到:bc

char[] charArray = s.toCharArray();//字符串转数组,得到{a,b,c,d,e,f,g}

char charA = s.charAt(i);//得到第i个字符,i=1 得到 b

Character.isLetterOrDigit('a');//判断字符是否是字母或数字

Character.toLowerCase(ch);//字母转小写

2、遍历字符串子串的方法

abcdef

字母从前到后,a~f,b~f,c~f,d~f,e~f,f

字母个数遍历,a,b,c,d,e,f; ab,bc,cd...;abc,bcd,cde...;abcd,bcde,cdef;.........

3、StringBuilder

sb.deleteCharAt(0); abc 变成 bc

ab.append('a'); 可以添加Character类型数据

sb.reverse();反转字符串

二分查找

34. 在排序数组中查找元素的第一个和最后一个位置

35. 搜索插入位置

//二分查找
public static void main(String[] args) {
        int[] nums = {3, 3, 3, 3, 3, 3};
        int target = 3;

        int res = -1;

        int l = 0;
        int r = nums.length-1; //脚标闭区间写法 []
        while (l <= r) {// 因为左右脚标l和r都是闭区间,所以要考虑l=r的情况。
            int mid = (l + r) / 2;

            //1、该写法返回重复数据最右边脚标的值。r == result;
//因为如果数据相等左边角标进行移动,会逐步靠近右边最大的脚标,所以该写法最后结果返回r对应的角标即可。
//2、为什么l = mid + 1,而不是l = mid,因为数据相等最后l会移动到脚标最右边,此时l=r=nums.length-1,如果l一直等于mid,会死循环;
//且如果只有一个元素时,如果写成l = mid也会死循环(此时l==r==0)。
//所以 l = mid+1,跳出循环,最后返回脚标r即可。
                if (nums[mid] <= target) {
                    res = mid;//返回res
                    l = mid + 1;
                } else {
                    r = mid - 1;
                }

            //2、该写法res返回重复数据,最左边脚标的值。l == result;
            /*if(nums[mid] >= target){
                r = mid - 1;
            } else {
                l = mid + 1;
            }*/
        }
        System.out.println("l=" + l + ";r=" + r);
    }

动态规划

1、找出状态转移方程式,把问题转换为子问题集。

2、一般这类问题大多都是求最大值或者最小值。

3、先求出开始的前几个值,再列出状态转移方程式,可以用一维或者二维数组把每个数据存起来。

4、二维数组可以看成一个矩阵

int[][] grid;

int row = grid.length;//

int column = grid[0].length;

int[][] dp = new int[row][column];

常见问题:62. 不同路径 、 64. 最小路径和  (解法:先填充第一行和第一列的值)

背包问题

a. 完全背包问题

零钱兑换: 凑成总数target需要的最少零钱数

  • int[] dp = new int[amount+1]; //最少零钱数
  • dp[i] = 最少零钱数; i表示要凑的零钱金额。dp[i] 初始化时为target + 1;
  • 状态转移方程式:拿走一个银币后的最小硬币数 + 1 ,1表示自己当前这个硬币,或者抽不齐;

for(int coin : coins) {

        dp[i] = Math.min(dp[i - coin] + 1,dp[i]);

}

/**
        完全背包问题
        动态规划解法:整体思路是从dp[i]里抽取出硬币,然后找到dp[i]和dp[i-coins[j]]的关系
        dp[i] = Math.min(dp[i-coins[j]] + 1, dp[i]);

        1、dp[i] 表示:总金额为i,凑成后的最少硬币个数
        
        2、如何理解状态转移方程式 dp[i] = Math.min(dp[i-coins[i]],dp[i])
        a:依次拿掉一个面值的硬币,此时面额的最少硬币数 + 1 就是dp[i]的值;
        b:由于i > i-coins[i]恒成立,所以dp[i-coins[i]] 肯定被提前计算过了
        c:如果没有符合条件的情况,就设置一个不可能的数值,如:amount+1;

        例如:输入:coins = [1, 2, 5], amount = 11
             输出:3 
             解释:11 = 5 + 5 + 1
    
     */
    public int dpMethod(int[] coins, int amount){
        if(amount == 0 || coins == null){
            return 0;
        }

        int[] dp = new int[amount+1];
        dp[0] =0;

        //1、初始化时,先设置成最大的值。(MAX = 通过面值为1的硬币进行组合)
        for(int i=1;i<=amount;i++){
            
            //amount+1后初始化的值,不可能存在,因为最大的数量就是amount,即全部为面值为1的硬币
            dp[i] = amount + 1;
        }
        
        //i表示金钱的面额
        for(int i=1;i<=amount;i++){

            //2、遍历每个硬币,并从中拿出面额
            int coinLen = coins.length;
            for(int j=0;j<coinLen;j++){
                //有符合条件的硬币数,则:当前金额-其中一个面值金额
                if(coins[j]<=i){
                    dp[i] = Math.min(dp[i-coins[j]] + 1, dp[i]);
                }
            }
            
        }
        //dp[amount] == amount+1表示该面额下,不能通过coins[j]组合出符合条件的场景,因为还是初始化时的大小
        return dp[amount] == amount+1 ? -1 : dp[amount];
    }

b.0-1背包问题

注意:因为元素不能重复使用,所以一般会二维数组表示,即i可表示可选择的元素,j为目标值。

分割等和子集:一个数组,能否分成两个和相等的数组;

1、dp[i][j]表示:数组下标在[0,i]范围内。如i=2表示 num[0]、num[1]、num[2]这个区间内的值的和使得相加后的容量等于j;j=需要凑齐的总和的值。

2、dp[i][j] 为true表示可以填充满,为fase表示不能填充满。

3、状态转移方程式:

boolean[][] dp = new boolean[nums.length][target+1];

a:上一行为true,即上一个数字就能凑成功了。所以本行肯定为true

b:上一行为false,要看把自己这个数字添加进去能不能凑成目标数(目标数为j)

dp[i][j] = dp[i-1][j] || dp[i-1][j-num[i]]

public boolean canPartition1(int[] nums) {
        if(nums == null || nums.length <= 1){
            return false;
        }

        int sum = 0;
        for(int num : nums){
            sum += num;
        }
        //基数肯定不行
        if(sum % 2 == 1){
            return false;
        }

        int target = sum / 2;

        boolean[][] dp = new boolean[nums.length][target+1];
        //设置第一列
        for(int i=0;i<nums.length;i++){
            dp[i][0] = true;
        }
        //设置第一行
        for(int j=0;j<=target;j++){
            if(nums[0] == j){
                dp[0][j] = true;
            }else{
                dp[0][j] = false;
            }
        }
        //i为数组角标,j为要凑成的数字
        for(int i=1;i<nums.length;i++) {
           for(int j=1;j<=target;j++) {
               //上一行为true,即上一个数字就能凑成功了。所以本行肯定为true
               if(dp[i-1][j]){
                   dp[i][j] = true;
               }else{
                   //上一行为false,要看把自己这个数字添加进去能不能凑成目标数(目标数为j)
                   if(nums[i] <= j){
                       dp[i][j] = dp[i-1][j-nums[i]];
                   }
               }
           }
        }

        return dp[nums.length - 1][target];
    }

回溯算法

路走不通就回到原来的岔路口重新选择一条新的路再走。

1、先画所有组合的树形结构

2、利用递归

3、递归后把递归前的操作进行撤销(回溯)

典型例题:46. 全排列 、47. 全排列 II  、39. 组合总和  

90. 子集 II

public void dfs(int[] nums,int dept,boolean[] used,
        List<Integer> list, List<List<Integer>> result){

        //2、当遍历到最后一层后,添加数据到结果列表里
        if(dept == nums.length) {
            result.add(new ArrayList(list));
        }
        for(int i=0;i<nums.length;i++) {
            
            if(!used[i]) {
                list.add(nums[i]);
                used[i] = true;

                //1、深度遍历添加下一个数字
                dfs(nums,dept+1,used,list,result);

                //3、遍历完开始回溯,把变量替换成之前的状态
                used[i] = false;
                list.remove(list.size() - 1);

            }

        }

    }

用过的不能返回去 39. 组合总和  40. 组合总和 II

public List<List<Integer>> dfs(int[] candidates,int begin, int target,
        List<Integer> list, List<List<Integer>> result ){
     
        if(target == 0){
            result.add(new ArrayList(list));
            return result;
        }

        //begin表示开始搜索的起点。由于之前用过begin,所以后续i变化时,begin前的角标都不能使用
        for(int i=begin;i<candidates.length;i++){
            
            if(target<candidates[i]) {
                break;
            }
            list.add(candidates[i]);
            
            //由于可以元素可以重复添加,所以这里还是begin还是等于i。表示当前元素自己可以重复选择
            dfs(candidates,i,target-candidates[i],list,result);

            list.remove(list.size() -1);
        }
        return result;
 }

加大点难度:

93. 复原 IP 地址

二维数组

1、利用边界范围,或者需要注意边界范围

建立四个坐标:

int left = 0;
int right = nums[0].length -1 ;
int top = 0;
int down = nums.length -1;

59. 螺旋矩阵 II

54. 螺旋矩阵

2、建立一维或二维数组,进行辅助判断

1、79. 单词搜索

  • int[][] stepArr = {{0,1},{0,-1},{1,0},{-1,0}}; //利用这个二维数组进行移动
  • boolean[][] steped = new boolean[m][n];//通过这个二维数组,判断是否为走过的步数
  • public boolean isValidStep(int x, int y){} ;//判断边界值
  • 回溯
public boolean isValidStep(int x, int y){
     if(x>=0 && x<m && y>=0 && y<n) {
         return true;
     }
     return false;
}

2、73. 矩阵置零

通过两个一维数组,判断哪行、哪列是0?

boolean[] row = new boolean[x]; //第几行为0
boolean[] col = new boolean[y]; //第几列为0

3、36. 有效的数独

int[][] row = new int[9][10];//初始化时,记录每一行没有重复值,即:初始值为0

int[][] col = new int[9][10];

int[][] box = new int[9][10];

不可能两次为1

row[i][val] = 1;

col[j][val] = 1;

box[(i/3) * 3 + j/3][val] = 1;

力扣(Leetcode)第1题:两数之和(C语言版本) 题目: 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出和为目标值 target 的那两个整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 你可以按任意顺序返回答案。 示例 1: 输入:nums = [2,7,11,15], target = 9 输出:[0,1] 解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。 示例 2: 输入:nums = [3,2,4], target = 6 阅读详情

相关推荐

刷力扣 LeetCode 算法题需要充值会员吗?

刷力扣算法题,需要充值会员吗?我的体验是会!为什么?请看文章

负雪明烛 1万+

leetcode算法

反转链表 反转一个单链表。 输入: 1->2->3->4->5 输出: 5->4->3->2->1 解法1:迭代,重复某一过程,每一次处理结果作为下一次处理的初始值,这些初始值类似于状态、每次处理都会改变状态、直至到达最终状态 从前往后遍历链表,将当前节点的next指向上一个节点,因此需要一个变量存储上一个节点prev,当前节点处理完需要寻找下一个节点,因此需要一个变量保存当前节点curr,处理完后要将当前节点赋值给 prev,并将next指针赋值给cu

Bleuuuu的博客 1665

在VsCode中使用LeetCode插件

首先,我们需要在扩展中找到leetcode这个插件,搜一下会跳出来很多,选择下载最多的那个即可。 点击安装,我这里已经安装了 选择中文版leetcode,也就是有力扣两个字的 接下来就是输入力扣的账号和密码了,如果没有的话需要在官网(力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台)注册一个 对力扣进行一些配置,比如文件存放的地方,默认编程语言,不然每次点击就会让你选择 依次点击文件 -》 首选项 -》设置 -》 找到扩展下的leetcode 设置默认语言,我设置...

u011895157的博客 9917

LeetCode常用算法的总结

LeetCode经典算法的总结,带你走进算法的世界

huye930610的博客 2427

KEPServerEX中,别名映射(Alias Mapping)数据标签重命名机制

目录核心机制应用场景配置步骤技术特性与参考内容的差异KEPServerEX中,别名映射(Alias Mapping) 是一种数据标签重命名机制,主要用于简化复杂标签路径的调用或实现跨系统兼容。其核心逻辑和功能如下:路径抽象 将设备层级结构中的完整标签路径(如 Channel1.Device1.Tag1)映射为简短别名(如 TempSensor1),降低客户端调用的复杂度。动态绑定 别名与实际标签实时关联,数据更新和读写操作通过别名直接传递到底层物理标签,无需修改客户端配置。多对一映射支持多个别名指向

「东哥说MES」 专注于MES制造执行系统,为你拆解核心架构、功能模块及与ERP/PLC的集成逻辑。提供从入门到精通的系列干货、精选行业报告与实用工具,构建你的数字化知识体系,关注我,用实战经验照亮你的数字化之路。 1591

Python结合海康威视工业相机SDK实现高效图像采集与处理

本文详细介绍了如何使用Python结合海康威视工业相机SDK实现高效的图像采集与处理。内容涵盖从环境搭建、SDK核心模块理解,到完整的图像采集流程拆解,包括设备枚举、参数设置、主动取流以及关键的像素格式转换。同时,文章深入探讨了触发模式、参数控制等高级应用,并提供了性能优化建议和可复用的相机操作类封装,帮助开发者快速构建稳定的机器视觉应用。

weixin_29043895的博客 349

LeetCode算法技巧汇总 -- 持续更新,学无止境!

此篇是本人 LeetCode 算法刷题技巧总结,还包括刷过的算法题分类,自己记录以便后续二刷三刷,也分享给大家欢迎一起交流探讨。话说现在非常遗憾大学期间没能坚持搞 ACM,出来社会才越发觉得后悔,但是遗憾归遗憾,我还是相信种一棵树是十年前,其次是现在,所以重新再来为时不晚!刷起!!!

技术分享,读书笔记,面试宝典,算法积累,应有尽有~ 3104

本地部署开源视频会议解决方案 Jitsi Meet 并实现外网访问

Jitsi Meet 是一款基于 WebRTC 技术的开源视频会议解决方案,它允许用户通过互联网进行高质量的视频通话、语音通话和文本聊天,非常适合用于在线教育、远程办公、团队协作等场景。本文将详细介绍如何利用 Docker 在本地部署 Jitsi Meet 并结合路由侠实现外网访问本地部署的 Jitsi Meet。

lyxnwct的博客 1946

leetcode经典算法题总结

针对leetcode算法题常见的五大经典复杂算法进行如下总结

xiaomu_347的博客 1244

【Boost5】Boost变换器的输入电容

节点的电流有3个,一个是来自电源输入的,由于我们把Vin看成理想电源以及线路的电感的存在,它可以近似看作是恒定的电流源Iin,一个是流向输入电容Cin的电流Icin,另外一个节点是电感L电流IL。电容电流波形在整个开关周期内的平均值为0,充电和放电在一个周期中各占1/2,在图中充电部分面积和放电部分面积相等,那么在充电或放电的电荷量Q=I*t,从图中可以看出,在一个周期内电容电流变化量是ΔIL,那在电容在充电1/2T周期中电流的变化量是1/2ΔIL。输入电容上的ESR也会随着电流变化,影响输入电压的变化。

qq_43416206的博客 3348

如何在项目中集成bpmn-process-designer

文章目录一、bpmn-process-designer是什么?二、使用步骤1.将下面地址的代码下载到本地2.替换dependencies和devDependencies3.拷贝package目录4.在main.js引入代码5.拷贝src5.拷贝App.vue代码注意事项 一、bpmn-process-designer是什么? bpmn-process-designer是一个基于 bpmn.js,Vue 2.x 和 ElementUI 开发的流程设计器(前端部分),支持监听器,扩展属性,表单等配置,可自由扩展

weixin_43550766的博客 9454

LeetCode中常用技巧

1. 递归 递归要素: 参数中要有操作的数组或集合 结束条件,结束的判断需要由其它参数参与确定 根据实际情况方法是否有返回 2. 动态规划

u012551120的博客 1023

SuperMap iDesktop 9D三维倾斜摄影数据处理

OSGB格式的三维倾斜摄影数据进入时空大数据平台之前需要进行数据优化和格式转换

weixin_43204897的博客 1131

LeetCode使用简介(leetcode中国-力扣)

没有入过英文版官网的坑,现在中文版官网也出来许久并且已经比较完善,题库也是通的,现在就直接使用LeetCode中国。 经过测试,到2019.11账号还是不通的,使用在中文版注册的账号密码是无法登陆英文版的,都绑定并使用github登录得到的不同的账号。能查到的18年的关于leetcode账号数据同步到leetcode中国的帖子,因为18年leetcode中国才刚刚出现还有很多不完善的地方,不太好使...

Sophia_fez的博客 1万+

【Kingbase人大金仓】授权文件更换

本文介绍了金仓数据库授权文件更换的步骤:1.通过ksql或客户端工具查询数据库版本;2.在官网下载对应版本的license.bat文件;3.替换前先备份原授权文件(使用tar命令压缩),再用新文件覆盖原文件。注意事项包括:版本号需严格对应,授权文件通常位于安装目录下,可使用find命令查找具体位置。操作需谨慎,建议先备份原文件以便恢复。

qq_34463511的博客 3459

基于深度学习的灰度图像气泡群识别与优化

灰度图像气泡群深度学习识别优化研究 本研究针对MATLAB实现的深度学习气泡群识别系统在从1445个点到4992个点扩展时出现的精度不稳定问题,提出了一套完整的解决方案。文章首先分析了问题根源,包括数据复杂度增加、类别不平衡、网络容量不足等因素,然后系统性地提出了数据预处理增强、网络架构优化、训练策略调整和后处理算法改进等优化措施。通过改进的U-Net架构、自适应直方图均衡化等技术创新,有效提升了模型在大规模气泡群图像上的识别精度和稳定性,为化工、生物医学等领域的灰度图像分析提供了可靠的技术支持。

max500600的博客 412

LeetCode 力扣算法题解汇总,All in One

我刷过的所有 leetcode 算法题解的汇总。 题目的排列顺序是按照先Easy再Medium再Hard排列的,暂时还没有把题目全部整理完成。后序我会把刷过的所有的题目都整理到这个文档里。 如果想看我全部的力扣算法题解,可以看我的题解博客:[fuxuemingzhu.cn](fuxuemingzhu.cn)

负雪明烛 1万+

计算机控制技术及应用

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

在 vscode 上刷力扣 Leetcode 可以这样来

用vscode刷LeetCode算法,其乐无穷

梦幻通灵 3万+

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

【PythonCode】力扣Leetcode26~30题Python版

力扣26-30

weixin_43790276的博客 2017

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

掌握这15种模式后,力扣(LeetCode)不再难

在掌握这15种模式之前,力扣(LeetCode)对我来说一直很难。

硅基创想家的博客 4317

力扣(LeetCode)打卡刷题交流计划(长期维护)

前言 忙忙活活暑期过去了一半,在即将升学的日子里,打算干点什么东西,由于实力以及经验的欠缺没有创群和大家讨论,但我更喜欢以更实在的方式——能作点什么——和大家一起从0打开力扣LeetCode, 对,没错,就是从开开始一起刷力扣,因为力扣自己还没刷过,想和大家一起开始。在笔者公众号(bigsai)后台回复进群,即可通过二维码扫码进群,也可以加笔者vxq1315426911拉你进群。 本次活动长期维护运行,希望能和大家一起进步。 打卡计划 因为在去年寒假今年春的时候已经组织过类似的活动,当时是暑假搞得剑指off

bigsai 6661

【PythonCode】力扣Leetcode31~35题Python版

力扣31-35

weixin_43790276的博客 2085

leetcode力扣刷题1,7,9

力扣刷题力扣1,两数之和7,整数反转9,回文数vs code配置leetcode 力扣 以下简介来源百度百科 力扣(LeetCode)是领扣网络旗下专注于程序员技术成长和企业技术人才服务的品牌。源自美国硅谷,力扣为全球程序员提供了专业的IT技术职业 化提升平台,有效帮助程序员实现快速进步和长期成长。 此外,力扣(LeetCode)致力于解决程序员技术评估、培训、职业匹配的痛点,逐步引领互联网技术求职和招聘迈向专业化。 1,两数之和 来看一下力扣的评论,哈哈 好了,言归正转,上题解: class

qq_56630261的博客 742

刷 力扣 LeetCode 容易错过的工作机会

在力扣上有3个地方可以有效的获取到工作机会 1、在力扣的竞赛页面 竞赛 - 力扣 (LeetCode)备战技术面试?力扣提供海量技术面试资源,帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/contest/ 这里每周都会有企业冠名竞赛进行招聘,可以报名将自己的联系方式共享给企业,就可以让冠名的企业看到你的信息,当然,你在竞赛中的排名越靠前,获得offer的机会肯定就越大。 2、在力扣的求职页面 力扣https://lee

Allen_Z_L的博客 1278

LeetCode刷题指南

力扣,作为一个国内外的程序员都用作准备面试的刷题网站,对想要阅读这篇指南的你应该都不陌生。当你想要借助力扣刷题,提升代码能力、在面试中脱颖而出,却不知从何入手,这篇文章可以作为你的入门指南。

airhaohan 的博客 8989

【LeetCode力扣】86. 分隔链表

86. 分隔链表 - 力扣(LeetCode)考虑通过「新建两个链表」实现原链表分割,算法流程为:新建两个链表small和BigEqu,分别用于链接小于标志数 x 的结点和大于等于标志数 x 的结点。遍历链表head并依次比较各节点值 head->val 和 x 的大小,若head->val < x ,则将head指向的该结点添加到链表 small 最后面。若head->val >=x,则将head指向的该结点添加到链表BigEqu最后面。遍历完成后,拼接small和Big

Hacynn的博客 1723
上一篇: B树和B+树
下一篇: 秒杀系统设计
九号铅笔芯
博客等级 码龄9年 9粉丝 48原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值