随笔分类 - 算法
摘要:给你一个单链表的头节点 head ,请你判断该链表是否为回文链表。如果是,返回 true ;否则,返回 false 。 /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode n
阅读全文
摘要:338 给你一个整数 n ,对于 0 <= i <= n 中的每个 i ,计算其二进制表示中 1 的个数 ,返回一个长度为 n + 1 的数组 ans 作为答案。 class Solution { public int[] countBits(int n) { int[] res = new int
阅读全文
摘要:给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。 请你设计并实现时间复杂度为 O(n) 的算法解决此问题。 来源:力扣(LeetCode)链接:https://leetcode.cn/problems/longest-consecutive-seq
阅读全文
摘要:给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 "" 。 注意: 对于 t 中重复字符,我们寻找的子字符串中该字符数量必须不少于 t 中该字符数量。如果 s 中存在这样的子串,我们保证它是唯一的答案。 来源
阅读全文
摘要:在 "100 game" 这个游戏中,两名玩家轮流选择从 1 到 10 的任意整数,累计整数和,先使得累计整数和 达到或超过 100 的玩家,即为胜者。 如果我们将游戏规则改为 “玩家 不能 重复使用整数” 呢? 例如,两个玩家可以轮流从公共整数池中抽取从 1 到 15 的整数(不放回),直到累计整
阅读全文
摘要:给出集合 [1,2,3,...,n],其所有元素共有 n! 种排列。 按大小顺序列出所有排列情况,并一一标记,当 n = 3 时, 所有排列如下: "123""132""213""231""312""321"给定 n 和 k,返回第 k 个排列 来源:力扣(LeetCode)链接:https://l
阅读全文
摘要:对字符串模拟 - 对于字符串来说 - 使用left来记录不重复的最左位置,使用i 遍历s的中每个字符,利用max保存最大长度,判断i- left + 1是否大于当前max值。 特别的,要考虑到字符串为空或者字符串只有一个空格的情况。 class Solution { public int lengt
阅读全文
摘要:给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 思路分享:将每一行每一列首行首列元素为否为零进行保存,然后对于i和j元素是否零,如果为零个,就把i和j的首行和首列元素设置为零; 之后遍历首行和首列元素,如果为零,将其所在行和所在列进行
阅读全文
摘要:给定三个字符串 s1、s2、s3,请你帮忙验证 s3 是否是由 s1 和 s2 交错 组成的。 两个字符串 s 和 t 交错 的定义与过程如下,其中每个字符串都会被分割成若干 非空 子字符串: s = s1 + s2 + ... + snt = t1 + t2 + ... + tm|n - m| <
阅读全文
摘要:有效 IP 地址 正好由四个整数(每个整数位于 0 到 255 之间组成,且不能含有前导 0),整数之间用 '.' 分隔。 例如:"0.1.2.201" 和 "192.168.1.1" 是 有效 IP 地址,但是 "0.011.255.245"、"192.168.1.312" 和 "192.168@
阅读全文
摘要:编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性: 每行中的整数从左到右按升序排列。每行的第一个整数大于前一行的最后一个整数。 来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/search-a-2d-matri
阅读全文
摘要:给你一个字符串 path ,表示指向某一文件或目录的 Unix 风格 绝对路径 (以 '/' 开头),请你将其转化为更加简洁的规范路径。 在 Unix 风格的文件系统中,一个点(.)表示当前目录本身;此外,两个点 (..) 表示将目录切换到上一级(指向父目录);两者都可以是复杂相对路径的组成部分。任
阅读全文
摘要:给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。 字母异位词 是由重新排列源单词的字母得到的一个新单词,所有源单词中的字母通常恰好只用一次。 来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/group-anagra
阅读全文
摘要:给定一个 n × n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。 来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/r
阅读全文
摘要:给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。 注意:不能使用任何内置的 BigInteger 库或直接将输入转换为整数。 来源:力扣(LeetCode)链接:https://leetcode-cn.com/probl
阅读全文
摘要:实现 pow(x, n) ,即计算 x 的 n 次幂函数(即,xn )。 思路分享:判断n是否为0,然后判断n是或否为偶数,保存x的n/2的次方,如果n为偶数,直接返回t*t,如果为奇数,判断n是否小于0,小于的话,返回1/x* t*t,否则返回t* t * x; class Solution {
阅读全文
摘要:定义一个虚节点,指向head节点,然后遍历cur节点,如果当cur的next不为空且cur的next的val等于cur的val,先将cur = cur的next,然后让其一直循环往下继续遍历。 package com.lhb.nowcode; /** * @author lhb * @date 20
阅读全文
摘要:给你一个链表的头节点 head 和一个特定值 x ,请你对链表进行分隔,使得所有 小于 x 的节点都出现在 大于或等于 x 的节点之前。 你应当 保留 两个分区中每个节点的初始相对位置。 来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/parti
阅读全文
摘要:给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。 来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/valid-
阅读全文
摘要:思路:首先定义二维布尔类型的数组,然后初始化i == j 时候的值为true 从长度L为2开始到len,然后i从0到len,j从L + i - 1 i代表字符开始的位置,j代表字符结束的位置 如果s.i== s.j,此时如果L大于3的话,i和j的布尔值依赖于i + 1 和j - 1,如果L小于的话,
阅读全文