Keshawn_lu's Blog

Keshawn_lu's Blog

Become a better myself.

Leetcode 990. 等式方程的可满足性
题目简介:给定一个由表示变量之间关系的字符串方程组成的数组,每个字符串方程 equations[i] 的长度为 4,并采用两种不同的形式之一:"a==b" 或 "a!=b"。在这里,a 和 b 是小写字母(不一定不同),表示单字母变量名。 只有当可以将整数分配给变量名,以便满足所有给定的方程时才返回 true,否则返回 false。 示例 1: 123输入:["a==b","b!=a"]输出:false解释:如果我们指定,a = 1 且 b = 1,那么可以满足第一个方程,但无法满足第二个方程。没有办法分配变...
Leetcode 5430. 设计浏览器历史记录
题目简介:你有一个只支持单个标签页的 浏览器 ,最开始你浏览的网页是 homepage ,你可以访问其他的网站 url ,也可以在浏览历史中后退 steps 步或前进 steps 步。 请你实现 BrowserHistory 类: BrowserHistory(string homepage) ,用 homepage 初始化浏览器类。 void visit(string url) 从当前页跳转访问 url 对应的页面 。执行此操作会把浏览历史前进的记录全部删除。 string back(int steps) 在浏览历史中后退 steps 步。如果你只能在浏览历史中后退至多 x 步且 s...
Leetcode 126. 单词接龙 II
题目简介:给定两个单词(beginWord 和 endWord)和一个字典 wordList,找出所有从 beginWord 到 endWord 的最短转换序列。转换需遵循如下规则: 每次转换只能改变一个字母。 转换过程中的中间单词必须是字典中的单词。 说明: 如果不存在这样的转换序列,返回一个空列表。 所有单词具有相同的长度。 所有单词只由小写字母组成。 字典中不存在重复的单词。 你可以假设 beginWord 和 endWord 是非空的,且二者不相同。 示例 1: 12345678910输入:beginWord = "hit",endWord = &qu...
Leetcode 128. 最长连续序列
题目简介:给定一个未排序的整数数组,找出最长连续序列的长度。 要求算法的时间复杂度为 O(n)。 示例: 123输入: [100, 4, 200, 1, 3, 2]输出: 4解释: 最长连续序列是 [1, 2, 3, 4]。它的长度为 4。 思路:首先设置一个集合,用来去重,减少循环的次数。 为了减少循环的次数,当我们访问一个数时,若它的前驱也存在于集合中,比如{2,3,4,5,6},3的前驱为2,因为已经有2的存在了,所以最长连续序列必不可能从3开始计数。 所以我们找那些集合中不存在前驱的数,并以该数为起始点,统计最长的连续序列,最后返回最大值即可。 由于循环时每个数最多被访问到1次,...
Leetcode 面试题29. 顺时针打印矩阵
题目简介:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。 示例 1: 12输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[1,2,3,6,9,8,7,4,5] 示例 2: 12输入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]输出:[1,2,3,4,8,12,11,10,9,5,6,7] 限制: 0 <= matrix.length <= 100 0 <= matrix[i].length <= 100 思路:这题和我大一时候在算法书上看到的蛇形填数十分相似…可以用相同...
Leetcode 238. 除自身以外数组的乘积
题目简介:给你一个长度为 n 的整数数组 nums,其中 n > 1,返回输出数组 output ,其中 output[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。 示例: 12输入: [1,2,3,4]输出: [24,12,8,6] 提示:题目数据保证数组之中任意元素的全部前缀元素和后缀(甚至是整个数组)的乘积都在 32 位整数范围内。 说明: 请不要使用除法,且在 O(n) 时间复杂度内完成此题。 思路:将除自身以外的数组分为自身左边的数组和自身右边的数组两部分。 通过两次循环分别求出左边数组的乘积与右边数组的乘积。 tip: 注意具体的手法… 代码如...
Leetcode 837. 新21点
题目简介:爱丽丝参与一个大致基于纸牌游戏 “21点” 规则的游戏,描述如下: 爱丽丝以 0 分开始,并在她的得分少于 K 分时抽取数字。 抽取时,她从 [1, W] 的范围中随机获得一个整数作为分数进行累计,其中 W 是整数。 每次抽取都是独立的,其结果具有相同的概率。 当爱丽丝获得不少于 K 分时,她就停止抽取数字。 爱丽丝的分数不超过 N 的概率是多少? 示例1: 123输入:N = 10, K = 1, W = 10输出:1.00000说明:爱丽丝得到一张卡,然后停止。 示例2: 1234输入:N = 6, K = 1, W = 10输出:0.60000说明:爱丽丝得到一张卡,然后...
Leetcode 面试题64. 求1+2+…+n
题目简介:求 1+2+...+n ,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。 示例 1: 12输入: n = 3输出: 6 示例 2: 12输入: n = 9输出: 45 限制: 1 <= n <= 10000 思路:不能使用for,就想到用递归,但是需要判断递归结束的标志,也就是n —> n - 1 -> ... -> 0,n到达0时需要退出递归。所以可以使用逻辑运算符&&的短路性质。 即对于 A && B 这个表达式,如果 A 表达式返回 Fa...
Leetcode 1431. 拥有最多糖果的孩子
题目简介:给你一个数组 candies 和一个整数 extraCandies ,其中 candies[i] 代表第 i 个孩子拥有的糖果数目。 对每一个孩子,检查是否存在一种方案,将额外的 extraCandies 个糖果分配给孩子们之后,此孩子有 最多 的糖果。注意,允许有多个孩子同时拥有 最多 的糖果数目。 示例 1: 12345678输入:candies = [2,3,5,1,3], extraCandies = 3输出:[true,true,true,false,true] 解释:孩子 1 有 2 个糖果,如果他得到所有额外的糖果(3个),那么他总共有 5 个糖果,他将成为拥有最...
Leetcode 101. 对称二叉树
题目简介:给定一个二叉树,检查它是否是镜像对称的。 例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 12345 1 / \ 2 2 / \ / \3 4 4 3 但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的: 12345 1 / \2 2 \ \ 3 3 思路:运用递归,由于是镜像对称,所以判定左树的左子树和右树的右子树,左树的右子树和右树的左子树是否相等即可。 tips: 两结点均为空时,相等 只有一结点为空时,不相等 代码如下:123456789101112131415161718192021222324...
avatar
鸣蜩十九
Always
友链
CSDN BiliBili