
算法
文章平均质量分 58
豆包版:每天进步一点点
2LC
展开
-
力扣Lc25--- 821. 字符的最短距离(java版)-2024年3月31日
这一遍历可以帮助我们找到每个位置到其右边最近的目标字符的距离,并将这个距离与之前从左向右遍历得到的距离进行比较,取最小值。这一遍历可以帮助我们找到每个位置到其左边最近的目标字符的距离。原创 2024-03-31 22:55:49 · 229 阅读 · 0 评论 -
力扣Lc24--- 434. 字符串中的单词数(java版)-2024年3月29日
【代码】力扣Lc24--- 434. 字符串中的单词数(java版)-2024年3月29日。原创 2024-03-29 22:07:40 · 299 阅读 · 0 评论 -
力扣Lc23--- 290. 单词规律(java版)-2024年3月27日
2)mapPatternToWord.get(‘a’):获取模式字符 a 对应的单词,这应该是之前映射中存储的值。(4)查当前的模式字符和单词是否已经在映射中,如果不在,则添加映射;(3)遍历 pattern 和 words 同时,为每个模式字符和单词建立双向的映射关系。(2)建立模式字符和单词之间的双向映射关系,我们可以使用两个哈希映射(或字典)来实现。:这是一个逻辑“非”操作符,表示取反。:这是一个逻辑“非”操作符,表示取反。.equals(“dog”):检查获取的单词是否等于 “dog”原创 2024-03-27 22:29:59 · 417 阅读 · 0 评论 -
力扣Lc22--- 459. 重复的子字符串(java版)-2024年3月27日
子串的最大可能长度是s的一半。这是因为如果子串的长度超过了s的一半,那么这个子串就无法重复构成整个字符串s。在这种情况下,子串的最大可能长度是3,因为子串"ababab"(长度为6)显然不能由任何子串重复多次构成。因为如果子串的长度超过了s的一半,那么重复多次的子串加起来的长度就会超过s的长度,从而无法构成整个字符串s。然而,单个字符显然无法重复构成整个字符串,因此我们从长度为2的子串开始考虑。(2)就是先把字符串/2,这是重复子串的最大长度,然后再从总的字串长度去找字串的因数。原创 2024-03-27 20:49:55 · 366 阅读 · 0 评论 -
力扣Lc21--- 389. 找不同(java版)-2024年3月26日
当 i = 0,s.charAt(i) = ‘a’,ASCII值为97。当 i = 1,s.charAt(i) = ‘b’,ASCII值为98。当 i = 0,t.charAt(i) = ‘a’,ASCII值为97。当 i = 1,t.charAt(i) = ‘b’,ASCII值为98。当 i = 2,t.charAt(i) = ‘c’,ASCII值为99。所以 count[1] 的值增加1,变为 count[1] = 1。所以 count[1] 的值减少1,变为 count[1] = 0。原创 2024-03-26 22:13:24 · 788 阅读 · 0 评论 -
力扣Lc20--- 202.快乐数(java版)-2024年3月20日
在 GetNext() 方法中,我们首先将 n 的个位数字取出并计算其平方,然后将其相加得到 sum,即 1^2 + 9^2 = 1 + 81 = 82。在 GetNext() 方法中,计算 68 的各位数字的平方和得到 100,并将其赋给 n。在 GetNext() 方法中,计算 100 的各位数字的平方和得到 1,并将其赋给 n。在 GetNext() 方法中,计算 82 的各位数字的平方和得到 68,并将其赋给 n。此时,循环继续执行,但是 n 的值已经等于 1,不满足循环条件,退出循环。原创 2024-03-21 22:29:38 · 435 阅读 · 0 评论 -
力扣Lc19--- 268. 丢失的数字(java版)-2024年3月20日
在这个语法中,元素类型 是指被遍历对象中元素的类型,元素变量 是在每次循环迭代中代表当前元素的变量名,遍历对象 是要迭代的数组或集合。(1)比如数组里面有n个数,然后计算这n个数的总和(用等差求和数列计算),然后减去数组的和,用总和减去数组和即为所得。所以,在 Java 中,加强型 for 循环中的 元素变量 是直接表示数组或集合中的元素值,而不是它们的索引。原创 2024-03-20 22:12:53 · 365 阅读 · 1 评论 -
补充1道:二进制转换成十进制
如果指定的字符是数字 (‘0’ 到 ‘9’ 之间的字符),则返回相应的数值(例如,‘0’ 返回 0,‘1’ 返回 1,以此类推)。2) 但是换成其他字符串的题的话,原本索引i=0,1,2(从左往右) ,如果m=length-1-i,就变成了逆序(从右往左)1)也就是指数对应的数值是(2,1,0),即从左到右的顺序。(1)比如有一个三位数 110,然后i=0的时候,ex=2。i=1,bitValue(底数)=1,ex(指数)=1。i=2,bitValue=0(底数),ex(指数)=0。原创 2024-03-19 21:17:32 · 378 阅读 · 0 评论 -
力扣Lc18--- 168. Excel表列名称(java版)-2024年3月19日
就类似2进制10代表2,110代表4,用某进制次幂的方式返回最后的数字结果。因为是输入字符 然后显示数字。原创 2024-03-19 20:46:33 · 712 阅读 · 0 评论 -
力扣Lc18--- 168. Excel表列名称(java版)-2024年3月19日
(2)在计算机科学中,通常使用 0-based 索引,这意味着第一个元素的索引是 0,第二个元素的索引是 1,以此类推。在将数字转换为 Excel 列名的过程中,我们需要将索引方式(从 0 开始)与 Excel 列名方式(从 1 开始)进行转换。通过减去 1,我们将数字的索引方式转换为 Excel 列名的方式,以便正确计算列名。Excel 列名由字母组成,从 A 开始,一直到 Z,然后是 AA、AB、AC,以此类推。(3)把他看作是26进制除法,先列数-1,%26取余数 ,/26处理更高位,原创 2024-03-19 17:15:26 · 636 阅读 · 0 评论 -
力扣Lc17--- 345.反转字符串中的元音字母(java版)-2024年3月18日
通过 StringBuilder 的 append() 方法,你可以向其中追加字符、字符串或其他数据类型的值,然后通过 toString() 方法将 StringBuilder 对象转换为最终的字符串。这种形式时,我们是在构造一个新的 StringBuilder 对象,该对象的初始内容是字符串 s 的内容。它将字符串中的每个字符复制到一个新的字符数组中,并返回该字符数组。这段代码的目的是将字符数组中的字符逐个追加到 StringBuilder 中,然后返回 StringBuilder 对象转换成的字符串。原创 2024-03-18 17:31:48 · 1158 阅读 · 0 评论 -
力扣L16--- 189.轮转数组-2024年3月18日
System.arraycopy() 方法是Java中用于数组复制的一个静态方法。它允许将一个数组的部分或全部内容复制到另一个数组中的指定位置。:因为 rotate 是一个数组,而不是一个对象,它没有 valueOf() 方法。如果你想返回旋转后的数组,应该直接返回 nums 数组即可。**注3:**步长k大于数组的长度的时候 说明走过某几个完整的循环。destPos:目标数组中要复制的起始位置。srcPos:源数组中要复制的起始位置。length:要复制的元素个数。dest:目标数组。原创 2024-03-18 12:56:47 · 420 阅读 · 0 评论 -
力扣L15--- 67.二进制求和(JAVA版)-2024年3月17日
注1: 二进制用 %2 /2。原创 2024-03-17 22:26:59 · 448 阅读 · 0 评论 -
力扣L14--- 415.字符串相加(JAVA版)-2024年3月17日
*注5:**StringBuilder 是 Java 中的一个类,用于构建可变的字符串。String.valueOf() 是一个静态方法,它接受各种类型的参数,并返回一个表示该参数的字符串。:result.reverse() 是 StringBuilder 类中的方法,它用于反转 StringBuilder 对象中的字符序列。在ASCII编码中,数字字符 ‘0’ 到 ‘9’ 的ASCII值是连续的,分别是 48 到 57。因此,将一个数字字符减去 ‘0’ 的ASCII值,就可以得到对应的数字。原创 2024-03-17 22:01:09 · 498 阅读 · 0 评论 -
力扣L13--- 409.最长回文串(JAVA版)-2024年3月1日
对于出现奇数次的字母,我们只能取其偶数部分,因为回文串是对称的,如果将所有奇数次的字母都添加到回文串的两端,将无法构成一个对称的回文串。通过调用 cnt.values() 方法,我们可以获取到 cnt 哈希表中所有字母的出现次数,这些出现次数存储在一个集合中,我们可以通过遍历这个集合来获取每个字母的出现次数。:count.getOrDefault(c, 0) 是 Java 中 HashMap 类的方法,它的作用是获取哈希表中指定键的值,如果该键不存在,则返回指定的默认值。原创 2024-03-16 22:57:10 · 984 阅读 · 0 评论 -
力扣L12--- 125验证回文串(java版)-2024年3月15日
所以,s[count++] = s[i] 的含义是将字符数组 s 中的第 i 个位置的字符赋值给 s 中的第 count 个位置,并将 count 递增。Character.isLetterorDigit(s[i]) 也是错误的方法调用,应该是 Character.isLetterOrDigit(s.charAt(i))。Character.isUppercase(s[i]) 是错误的方法调用,应该是 Character.isUpperCase(s.charAt(i))。原创 2024-03-15 23:10:28 · 1011 阅读 · 0 评论 -
力扣L11--- 344.反转字符串(JAVA版)-2024年3月15日
交换两个变量值的代码。原创 2024-03-15 21:35:44 · 424 阅读 · 0 评论 -
力扣L10--- 3. 无重复字符的最长子串--2024年3月14日
注1:containsKey 是 Java 中 HashMap 类的一个方法,用于检查哈希表中是否包含指定的键。(6)遍历哈希表:可以使用 entrySet() 方法获取哈希表的键值对集合,然后使用循环来遍历这个集合。(4)检查键是否存在:可以使用 containsKey() 方法来检查哈希表中是否包含指定的键。(5)删除键值对:可以使用 remove() 方法来删除指定键的键值对。如果哈希表中包含指定的键,则返回 true;(3)获取值:可以使用 get() 方法根据键来获取对应的值。原创 2024-03-15 14:57:07 · 490 阅读 · 0 评论 -
力扣L9--- 12. 整数转罗马数字--2024年3月12日
i++) {:这是一个 for 循环,用于遍历 units 数组中的每个元素,units 数组包含了所有可能用到的基本罗马数字的值,按照从大到小的顺序排列。2)对于自定义的类,如果没有重写 toString() 方法,默认会使用 Object 类的 toString() 方法,为了更好地表示对象的内容,可以重写 toString() 方法,返回自定义的字符串表示。在Java中,char 是用于表示单个字符的数据类型,而 String 是用于表示字符串的类。原创 2024-03-12 22:34:53 · 1044 阅读 · 0 评论 -
力扣L8--- 9. 回文数(java版)--2024年3月12日
就是跟给一个数逆序(整数反转)是同一道题,多了一个条件就是负数不是回文数。原创 2024-03-12 20:38:05 · 527 阅读 · 0 评论 -
力扣L6--- 两数之和(java版)--2024年3月12日
因此,该算法返回 [0, 3] 和 [2, 4] 两个答案,表示在给定数组中,下标为 0 和 3 的两个元素 [3, 7] 和下标为 2 和 4 的两个元素 [4, 6] 的和均为目标值 10。当 i = 1 时,内部循环会检查 nums[1] + nums[2] 是否等于目标值 10,即 2 + 4 = 6。外部循环开始时,i = 0,内部循环从 j = i + 1 = 1 开始,内部循环将遍历数组的剩余部分 [2, 4, 7, 6]。由于 i = 3,不满足 i < n - 1 的条件,外部循环结束。原创 2024-03-12 17:13:42 · 1198 阅读 · 0 评论