自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(44)
  • 资源 (1)
  • 收藏
  • 关注

原创 备战秋招60天算法挑战,Day35

给定两个字符串 和 ,返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 ,返回 。一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。两个字符串的 公共子序列 是这两个字符串所共同拥有的子序列。举个例子:视频题解最长公共子序列思路来源思路来源知识回顾动态规划是一种通过将原问题分解为子问题来求解复杂问题的算法思想。它通常用于求解最优化问题,例如最长公共子序列、背包问题等。动态规划的核心

2024-09-10 15:28:44 690

原创 备战秋招60天算法挑战,Day34

给你一个整数数组,表示不同面额的硬币;以及一个整数,表示总金额。计算并返回可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 。你可以认为每种硬币的数量是无限的。举个例子:视频题解零钱兑换思路来源思路来源知识回顾动态规划是一种通过将原问题分解为子问题来求解复杂问题的算法思想。它通常用于求解最优化问题,例如最长公共子序列、背包问题等。动态规划的核心思想是将原问题分解为若干个子问题,通过求解子问题的最优解推导出原问题的最优解。可以通过两点来判断一个问题能不能通过动态规划来

2024-09-09 17:38:47 762

原创 备战秋招60天算法挑战,Day33

给你一个整数数组 ,找到其中最长严格递增子序列的长度。子序列是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,是数组的子序列。举个例子:视频题解 最长递增子序列思路来源思路来源知识回顾动态规划是一种通过将原问题分解为子问题来求解复杂问题的算法思想。它通常用于求解最优化问题,例如最长公共子序列、背包问题等。动态规划的核心思想是将原问题分解为若干个子问题,通过求解子问题的最优解推导出原问题的最优解。可以通过两点来判断一个问题能不能通过动态规划来解,一是该问题是否存在递

2024-09-06 16:54:52 831

原创 备战秋招60天算法挑战,Day32

你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金。这个地方所有的房屋都 围成一圈 ,这意味着第一个房屋和最后一个房屋是紧挨着的。同时,相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警 。给定一个代表每个房屋存放金额的非负整数数组,计算你 在不触动警报装置的情况下 ,今晚能够偷窃到的最高金额。举个例子:视频题解 打家劫舍 II思路来源思路来源知识回顾动态规划是一种通过将原问题分解为子问题来求解复杂问题的算法思想。它通常用于求解最优化问题,例如

2024-09-05 16:02:57 857

原创 备战秋招60天算法挑战,Day31

你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。举个例子:视频题解打家劫舍思路来源思路来源知识回顾动态规划是一种通过将原问题分解为子问题来求解复杂问题的算法思想。它通常用于求解最优化问题,例如最长公共子序列、背包问题等。动态规划的核心思想是将原问题分解为若

2024-09-04 15:43:58 468

原创 备战秋招60天算法挑战,Day30

给你一个字符串 和一个字符串列表 作为字典。请你判断是否可以利用字典中出现的单词拼接出 。注意:不要求字典中出现的单词全部都使用,并且字典中的单词可以重复使用。举个例子:视频题解单词拆分思路来源思路来源知识回顾动态规划是一种通过将原问题分解为子问题来求解复杂问题的算法思想。它通常用于求解最优化问题,例如最长公共子序列、背包问题等。动态规划的核心思想是将原问题分解为若干个子问题,通过求解子问题的最优解推导出原问题的最优解。可以通过两点来判断一个问题能不能通过动态规划来解,一是该问题是否存在递

2024-09-03 16:23:51 458

原创 备战秋招60天算法挑战,Day29

一条包含字母 的消息通过以下映射进行了 编码 :要 解码 已编码的消息,所有数字必须基于上述映射的方法,反向映射回字母(可能有多种方法)。例如, 可以映射为:注意,消息不能分组为 ,因为 不能映射为 ,这是由于 和 在映射中并不等价。给你一个只含数字的 非空 字符串 ,请计算并返回 解码 方法的 总数 。题目数据保证答案肯定是一个 32 位 的整数。举个例子:视频题解解码方法思路来源思路来源知识回顾动态规划是一种通过将原问题分解为子问题来求解复杂问题的算法思想。它通常用于求解最

2024-09-02 14:47:52 1137

原创 备战秋招60天算法挑战,Day28

假设你正在爬楼梯。需要阶你才能到达楼顶。每次你可以爬或个台阶。你有多少种不同的方法可以爬到楼顶呢?举个例子:视频题解爬楼梯思路来源思路来源知识回顾动态规划是一种通过将原问题分解为子问题来求解复杂问题的算法思想。它通常用于求解最优化问题,例如最长公共子序列、背包问题等。动态规划的核心思想是将原问题分解为若干个子问题,通过求解子问题的最优解推导出原问题的最优解。可以通过两点来判断一个问题能不能通过动态规划来解,一是该问题是否存在递归结构,二是对应的子问题能否记忆化。动态规划可以通过带备忘录的自上而

2024-08-29 15:21:29 1301

原创 备战秋招60天算法挑战,Day27

一个机器人位于一个 网格的左上角 (起始点在下图中标记为 “Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。问总共有多少条不同的路径?举个例子:视频题解 不同路径思路来源思路来源知识回顾动态规划是一种通过将原问题分解为子问题来求解复杂问题的算法思想。它通常用于求解最优化问题,例如最长公共子序列、背包问题等。动态规划的核心思想是将原问题分解为若干个子问题,通过求解子问题的最优解推导出原问题的最优解。可以通过两点来判断一个问题

2024-08-28 15:59:12 724

原创 备战秋招60天算法挑战,Day26

给定一个非负整数数组 ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标。举个例子:视频题解跳跃游戏思路来源思路来源知识回顾贪心算法是一种常见的算法思想,它通常用于解决优化问题。贪心算法的基本思想是,在每一步选择中都采取当前状态下最优的选择,从而希望最终得到全局最优解。本题是一道贪心算法应用的经典问题。应用贪心算法的关键就是每一步都采取当前状态下的最优选择。本题的算法如下:上述步骤把总目标拆解成一个个子目标,为达成每个子目标都采取

2024-08-27 15:15:11 574

原创 备战秋招60天算法挑战,Day25

给你一个无重复元素的整数数组和一个目标整数,找出中可以使数字和为目标数的所有不同组合,并以列表形式返回。你可以按任意顺序返回这些组合。中的同一个数字可以无限制重复被选取。如果至少一个数字的被选数量不同,则两种组合是不同的。对于给定的输入,保证和为的不同组合数少于个。举个例子:视频题解组合总和思路来源思路来源知识回顾回溯是一种通过将原问题分解为子问题来求解复杂问题的算法思想。它通常用于求解组合问题、排列问题等。回溯的核心思想是通过自上而下递归的方式枚举所有可能的解,直到找到符合条件的解为止。回溯算

2024-08-26 16:07:02 752

原创 备战秋招60天算法挑战,Day24

给你两个整数 和 ,不使用 运算符 和 ​​​​​​​,计算并返回两整数之和。举个例子:视频题解两整数之和思路来源思路来源知识回顾()运算的规则两位同时为,结果才为。有一位为,结果就为。两位不同,结果才为。运算符 ,可以将一个对象的二进制向右移位,右边位丢弃,左边位补。比如,。思路解析正常的十进制加法是加数和被加数每一位相加然后加上上一位的进位数,大于就继续进位。 题目要求不使用加法运算符,所以我们只能通过()、()、()等位运算来实现。加数和被加数对应的二进制按

2024-08-23 16:16:16 590

原创 备战秋招60天算法挑战,Day23

给你一个整数 ,对于 中的每个 ,计算其二进制表示中 的个数 ,返回一个长度为 的数组 作为答案。举个例子:知识回顾动态规划是一种通过将原问题分解为子问题来求解复杂问题的算法思想。它通常用于求解最优化问题,例如最长公共子序列、背包问题等。动态规划的核心思想是将原问题分解为若干个子问题,通过求解子问题的最优解自下而上推导出原问题的最优解。如果对区间上的数逐个求对应二进制中的个数是比较耗时的,下面来介绍使用动态规划来解此题。动态规划的关键是推导状态转移公式和边界条件处理。下面介绍这道题目两种不同

2024-08-22 14:55:00 872

原创 备战秋招60天算法挑战,Day22

给定一个包含 中 个数的数组 ,找出 这个范围内没有出现在数组中的那个数。举个例子:视频题解丢失的数字思路来源思路来源思路解析方法一 位运算首先来看一下异或运算的特点,转成二进制,转成二进制,它们之间的异或运算如下图:,,可以看出,对于二进制相同的按位异或值是,比如,。不同值按位异或值是,比如。利用异或运算符这个特性我们可以轻松解决这个题目。对区间和数组中所有的元素做异或运算,在中的元素会出现两次,不在中的元素只会出现一次,两个相同的元素做异或值为,最后的结果就是不在nums中的元素。

2024-08-21 16:05:12 437

原创 备战秋招60天算法挑战,Day21

编写一个函数,输入是一个无符号整数 (以二进制串的形式),返回其二进制表达式中数字位数为 的个数(也被称为汉明重量)。定义保存的个数。对于无符号整数,统计其中的个数步骤如下:关键在于如何获取对应二进制的最右边一位和怎样将对应的二进制向右移一位。获取n对应二进制最右面一位有两种方式:将对应的二进制右移一位有两种方式:java代码python代码方法二定义保存的个数。对于无符号整数,统计其中的个数步骤如下:其实就是将对应的二进制最右边值为的置为。在纸上继续按照上面步骤模拟一遍,会帮助大家更好的理解

2024-08-19 15:51:45 852

原创 备战秋招60天算法挑战,Day20

颠倒给定的 位无符号整数的二进制位。举个例子:视频题解 颠倒二进制位思路来源思路来源知识回顾左移运算符 ,可以将一个对象的二进制向左移位,左边位丢弃,右边位补。比如,。右移运算符 ,可以将一个对象的二进制向右移位,右边位丢弃,左边位补。比如,。思路解析方法一 按位颠倒我们先将题目简化一下,对于一个位的二进制,如何进行颠倒成呢?先定义一个位无符号的,我们将二进制的第位,放到的第位(位数从开始)就可以完成整个过程的翻转。过程如下图:针对上面的结论稍加修改就可以应用到位无符号整数

2024-08-16 15:07:06 929

原创 备战秋招60天算法挑战,Day19

给你一个字符串 ,请你统计并返回这个字符串中 回文子串 的数目。回文字符串 是正着读和倒过来读一样的字符串。子字符串 是字符串中的由连续字符组成的一个序列。具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被视作不同的子串。举个例子:视频题解 回文子串思路来源思路来源思路解析首先我们可以通过暴力遍历的方式枚举字符串所有的子串,统计其中回文串的个数,但是时间复杂度太高,这里不再详细的讲解。下面介绍一种中心扩散法。分两情况来考虑:所以本题的关键是枚举回文子串的中心。java代码p

2024-08-15 14:37:12 370

原创 备战秋招60天算法挑战,Day18

给你一个字符串 和一个整数 。你可以选择字符串中的任一字符,并将其更改为任何其他大写英文字符。该操作最多可执行 次。在执行上述操作后,返回包含相同字母的最长子字符串的长度。举个例子:视频题解替换后的最长重复字符思路来源思路来源思路解析本题是一道比较经典的滑动窗口问题,目标是在字符串中找到最长的一个窗口,满足最多替换个字母,窗口就可以变成所有字母都是相同的,这个窗口的长度就是我们要找的答案。定义,来表示窗口的左右边界,来保存结果,哈希表保存当前窗口中所有字母出现的频率。窗口的长度为,窗口中字

2024-08-14 11:37:34 686

原创 备战秋招60天算法挑战,Day17

给定两个字符串 和 ,编写一个函数来判断 是否是 的字母异位词。注意: 若 和 中每个字符出现的次数都相同,则称 和 互为字母异位词。举个例子:视频题解有效的字母异位词思路来源思路来源思路解析方法一 排序分别对和进行排序,然后比较排序后的字符串是否相等。java代码python代码复杂度分析时间复杂度: 快排的时间复杂度是O(nlogn),其中是字符串的长度。空间复杂度: 快排的空间复杂度是O(logn)。假设, 。java代码python代码复杂度分析时

2024-08-13 14:56:59 429

原创 备战秋招60天算法挑战,Day16

如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后,短语正着读和反着读都一样。则可以认为该短语是一个 回文串 。字母和数字都属于字母数字字符。给你一个字符串 ,如果它是 回文串 ,返回 ;否则,返回 。举个例子:视频题解验证回文串思路来源思路来源思路解析先明确回文串的概念:正着读和反着读都一样。换句话说就是对于字符串,将进行反转得到字符串,如果,那么就是回文串。本题中的字符串包含一些非字母数字干扰字符,在判断的时候可以跳过干扰字符。采用双指针法,定义两个变量,。java代码

2024-08-12 15:09:08 287

原创 备战秋招60天算法挑战,Day15

给你一个字符串 、一个字符串 。返回 中涵盖 所有字符的最小子串。如果 中不存在涵盖 所有字符的子串,则返回空字符串 。注意:举个例子:视频题解最小覆盖子串思路来源思路来源思路解析本题是经典的滑动窗口类型,解决这类问题的关键是窗口左右边界的滑动策略。定义表保存字符串中字符的频率,表保存滑动窗口中字符出现的次数,保存窗口的左边界,保存窗口的右边界,保存最小候选窗口的起点,保存最小候选窗口长度。窗口滑动策略如下:根据上面的策略我们可以获得以任意位置为左边界(枚举左边界)的所有候选窗口,

2024-08-08 16:32:38 411

原创 备战秋招60天算法挑战,Day14

给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。字母异位词 是由重新排列源单词的所有字母得到的一个新单词。举个例子:视频题解字母异位词分组思路来源思路来源思路解析本题的关键是找到字母异位词公共的特征,然后基于这个公共特征对所以的单词进行分类,这里介绍两种分类方法。对每个单词拷贝一个副本,然后对单词的副本进行排序,排序后相等的单词存到同一个数组中。这里借用一个表,排序后的单词作为表的。对于,在表中的分布如下图:java代码python代码复杂度分析时间复

2024-08-07 17:00:14 938

原创 备战秋招60天算法挑战,Day13

在我们刷题的时候,适当的借助现有的数据结构往往会起到事半功倍的效果,今天我们讨论一下栈的使用。栈的特点是先进后出,利用栈的这个特点可以巧妙的解决很多问题,借助下面这道题我们进一步来体会一下栈的妙用。给定一个只包括 ,,,,, 的字符串 ,判断字符串是否有效。有效字符串需满足:举个例子:视频题解有效的括号思路来源思路来源思路解析首先要理解题意,什么才是题目中描述的有效括号,比如, 如下图,把同类型的括号单独按顺序拆出来,每种类型的括号都是能闭合的,但是并不是合法的。因为最先和闭合的是,违背了

2024-08-06 16:05:09 851

原创 备战秋招60天算法挑战,Day12

给你一个字符串 ,找到 中最长的回文子串。如果字符串的反序与原始字符串相同,则该字符串称为回文字符串。举个例子:视频题解最长回文子串思路来源思路来源思路解析首先我们可以通过暴力遍历的方式枚举字符串所有的子串,从中寻找最长的回文串,但是时间复杂度太高,这里不再详细的讲解。下面介绍一种中心扩散法。分两情况来考虑:所以本题的关键是枚举回文子串的中心。java代码python代码复杂度分析时间复杂度: 整个过程会遍历中每个元素为中心的最长回文子串,所以时间复杂度是O(n2),其中是字符串的

2024-08-06 16:01:18 551

原创 备战秋招60天算法挑战,Day11

给定一个字符串 ,请你找出其中不含有重复字符的 最长子串 的长度。视频题解无重复字符的最长子串思路来源思路来源思路解析字符串相关的题目在面试中出现的频率是特别高的,主要原因有以下几点:所以刷题的过程中,字符串相关的题目应该着重去关注。基本上有点编程基础的同学都能想到一种暴力的算法,两个循环找出所有的子串,针对每个子串去判断是否有重复字符,这样的时间复杂度太高了,很显然这并不是面试官想要的答案。下面介绍一种基于 滑动窗口 的方式来解此题。所谓滑动窗口,其实就是由两个索引维护一个区间,满足一定条件

2024-08-05 15:55:25 541

原创 备战秋招60天算法挑战,Day10

给你一个整数数组 ,返回 数组 ,其中 等于 中除 之外其余各元素的乘积 。题目数据 保证 数组 之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。请不要使用除法,且在 O(n) 时间复杂度内完成此题。视频题解除自身以外数组的乘积思路来源思路来源思路解析题目要求不能使用除法,时间复杂度为O(n),其中为的长度。首先引入两个概念,前缀积和后缀积。前缀积:数组中第个元素的前缀积为第个元素之前所有元素的乘积。后缀积:数组中第个元素的后缀积为第个元素之后所有元素的乘积。我们

2024-08-05 15:52:32 531

原创 备战秋招60天算法挑战,Day9

给你一个整数数组 。如果任一值在数组中出现 至少两次 ,返回 ;如果数组中每个元素互不相同,返回 。举个例子:视频题解存在重复元素思路来源思路来源思路解析本题可以通过暴力两两对比的方式来解,但是时间复杂度太高O(n2),oj会判定超时。下面我来介绍两种时间复杂度更低的解法。首先对给定的进行排序,然后遍历排序后的进行遍历,如果存在,说明中存在重复的元素。java代码python代码复杂度分析时间复杂度: 排序最快的时间复杂度是O(nlogn),遍历一遍的时间复杂度是O(n),所以总的

2024-08-02 16:02:48 422

原创 备战秋招60天算法挑战,Day8

已知一个长度为 的数组,预先按照升序排列,经由 到 次 旋转 后,得到输入数组。例如,原数组 在变化后可能得到:若旋转 次,则可以得到 若旋转 次,则可以得到 注意,数组 旋转一次 的结果为数组 。给你一个元素值 互不相同 的数组 ,它原来是一个升序排列的数组,并按上述情形进行了多次旋转。请你找出并返回数组中的 最小元素 。你必须设计一个时间复杂度为 O(log n) 的算法解决此问题。举个例子:视频题解寻找旋转排序数组中的最小值思路来源思路来源思路解析题目要求要在 O(

2024-08-02 15:58:39 751

原创 备战秋招60天算法挑战,Day7

给你一个整数数组 ,请你找出数组中乘积最大的非空连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。测试用例的答案是一个 32-位 整数。子数组 是数组的连续子序列。举个例子:视频题解乘积最大子数组思路来源思路来源思路解析这是一道经典的动态规划题目,动态规划的关键就是推导状态转移公式,接下来带你一步步来推导。定义表示以中第个元素结尾子数组乘积最大的值,其中。在推导的过程中会枚举以中任意元素结尾,乘积最大的子数组。最终我们从中选择最大的一个即是最终要返回的结果。那么要怎么算呢?

2024-08-01 15:17:45 778

原创 备战秋招60天算法挑战,Day6

给定一个数组 ,它的第 个元素 表示一支给定股票第 天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。举个例子:视频题解买卖股票的最佳时机思路来源思路来源思路解析暴力枚举比较简单但时间复杂度比较高,我们直接跳过。买卖股票讲究的就是逢低买入,同时还要关注买卖的时序,要先买才能卖。定义三个变量,表示买入价,表示当前价格,表示最大利润。下面给

2024-08-01 15:10:13 507

原创 备战秋招60天算法挑战,Day5

给你一个整数数组 ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。子数组 是数组中的一个连续部分。举个例子:视频题解最大子数组和思路来源思路来源思路解析本题可以通过暴力循环来解,但是时间复杂度太大,暴力解法也不是出题的意图。我们还可以通过动态规划来解此题,动态规划的关键就是推导状态转移公式,下面我们来一步步推导此题的状态转移公式。定义为以中第个元素结尾,子数组和的最大值,其中。在推导的过程中会枚举以中任意元素结尾,和最大的子数组。最终我们从中选择最大的一个即是最终

2024-07-10 10:19:30 331

原创 备战秋招60天算法挑战,Day4

整数数组 按升序排列,数组中的值 互不相同 。在传递给函数之前, 在预先未知的某个下标 ()上进行了 旋转,使数组变为 , (下标 从 开始 计数)。例如, 在下标 处经旋转后可能变为 。给你 旋转后 的数组 和一个整数 ,如果 中存在这个目标值 ,则返回它的下标,否则返回 。你必须设计一个时间复杂度为 O(log n) 的算法解决此问题。举个例子:视频题解搜索旋转排序数组思路解析这道题和「LeetCode 153. 寻找旋转排序数组中的最小值」思路基本一致,主要的差异有两点:因

2024-07-05 09:56:39 636

原创 备战秋招60天算法挑战,Day3

给你一个整数数组 ,判断是否存在三元组 满足 、 且 ,同时还满足 。请你返回所有和为 且不重复的三元组。注意: 答案中不可以包含重复的三元组。举个例子:视频题解三数之和思路解析本题是经典的双指针类型的问题,解决此问题的核心在于以下两点。左右指针的移动策略。结果的去重策略。首先对数组进行升序排序,类似「167.两数之和II」,本次使用三个索引:,,。初始值,,。算法如下:时,或需要一个更小的值,由于是升序的,故只能把索引往左移,。如果,向右移动,直到(对去重)。时,或需要一个更大的值,由于

2024-07-04 15:04:46 333

原创 备战秋招60天算法挑战,Day2

给定一个长度为 的整数数组 。有 条垂线,第 条线的两个端点是 和 。找出其中的两条线,使得它们与 轴共同构成的容器可以容纳最多的水。返回容器可以储存的最大水量。说明: 你不能倾斜容器。举个例子:视频题解盛最多水的容器本题可以使用暴力枚举边界的方式来计算最大值,但是时间复杂度为 O(n2),会判定超时。下面介绍一个使用双索引的解法。定义索引为容器的左边界,索引为容器的右边界。那么区间围成的容器的面积可以表示为,这个面积公式对后续的推导过程很关键。我们知道了面积的计算方式,给定数组,初始化索

2024-07-04 10:47:57 609

原创 备战秋招60天算法挑战,Day1

给定一个整数数组 和一个整数目标值 ,请你在该数组中找出 和为目标值 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。举个例子:视频题解 思路解析首先暴力的方法就不说了,比较简单但是时间复杂度比较高。这里讲一种空间换时间的方法,利用表,提前把中的元素作为表的主键,的索引作为表的值存到表中。这样我们只需要遍历,在表中寻找,如果存在表中,且,那么就返回。如果遍历完整个都没有任何结果返回,就说明没有找到

2024-07-03 15:44:08 461

原创 面试中需要熟知的字符串知识

字符串是一串字符组成的序列,跟数组类似......

2024-03-12 10:09:42 1339

原创 面试中需要熟知的数组知识

数组是面试中最常见的数据结构之一,面试时很多其他类型的问题也经常会和数组结合,熟练掌握数组的操作对面试来说是必不可少的!

2024-03-05 20:25:22 1771

原创 怎样准备面试中的手写算法

在程序员找工作的过程中考察算法是一个必不可少的环节,尤其是校招面试,应届生如果没有啥项目经验,面试官只能通过手写算法来了解你的基本功。下面讲一讲准备面试中的手写算法需要注意的几点。

2023-09-08 17:31:12 111

原创 腾讯面试算法原题: LeetCode20.有效括号

在我们刷题的时候,适当借助现有的数据结构往往会起到事半功倍的效果,今天我们讨论一下栈的使用。栈的特点是先进后出,利用栈的这个特点可以巧妙解决很多问题,借助下面这道题我们进一步来体会一下栈的妙用。

2023-04-22 21:11:27 91

原创 滑动窗口:LeetCode 3.无重复字符的最长子串

所以刷题的过程中,字符串相关的题目应该着重去关注。

2023-04-20 13:16:31 94

数据挖掘小程序

C语言写的数据挖掘中的k-means 一个小程序

2015-01-16

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除