Keshawn_lu's Blog

Keshawn_lu's Blog

Become a better myself.

Leetcode 572. 另一个树的子树
题目简介:给定两个非空二叉树 s 和 t,检验 s 中是否包含和 t 具有相同结构和节点值的子树。s 的一个子树包括 s 的一个节点和这个节点的所有子孙。s 也可以看做它自身的一棵子树。 示例 1:给定的树 s: 12345 3 / \ 4 5 / \1 2 给定的树 t: 123 4 / \1 2 返回 true,因为 t 与 s 的一个子树拥有相同的结构和节点值。 示例 2: 给定的树 s: 1234567 3 / \ 4 5 / \1 2 / 0 给定的树 t: 123 4 / \1 2 返回 false。 ...
Leetcode 983. 最低票价
题目简介在一个火车旅行很受欢迎的国度,你提前一年计划了一些火车旅行。在接下来的一年里,你要旅行的日子将以一个名为 days 的数组给出。每一项是一个从 1 到 365 的整数。 火车票有三种不同的销售方式: 一张为期一天的通行证售价为 costs[0] 美元; 一张为期七天的通行证售价为 costs[1] 美元; 一张为期三十天的通行证售价为 costs[2] 美元。 通行证允许数天无限制的旅行。 例如,如果我们在第 2 天获得一张为期 7 天的通行证,那么我们可以连着旅行 7 天:第 2 天、第 3 天、第 4 天、第 5 天、第 6 天、第 7 天和第 8 天。 返回你想要完成在...
Leetcode 98. 验证二叉搜索树
题目简介给定一个二叉树,判断其是否是一个有效的二叉搜索树。 假设一个二叉搜索树具有如下特征: 节点的左子树只包含小于当前节点的数。 节点的右子树只包含大于当前节点的数。 所有左子树和右子树自身必须也是二叉搜索树。 示例 1: 12345输入: 2 / \ 1 3输出: true 示例 2: 123456789输入: 5 / \ 1 4  / \  3 6输出: false解释: 输入为: [5,1,4,null,null,3,6]。  根节点的值为 5 ,但是其右子节点值为 4 。 思路:因为是二叉搜索树,所以最左边的值最小...
Leetcode 45. 跳跃游戏 II
题目简介给定一个非负整数数组,你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 你的目标是使用最少的跳跃次数到达数组的最后一个位置。 示例: 1234输入: [2,3,1,1,4]输出: 2解释: 跳到最后一个位置的最小跳跃数是 2。  从下标为 0 跳到下标为 1 的位置,跳 1 步,然后跳 3 步到达数组的最后一个位置。 思路:首先定义一个far来表示在遍历元素的过程中(遍历至每次跳跃的终点end前),所能达到的最远的距离,即为下次跳跃的end。每次到达end以后,即一次跳跃结束,更新end后进行下一次的跳跃。 如示例中[2,3,1,1,4],...
王道数据结构 线性表的顺序表示(课后算法题)
从顺序表中删除具有最小值的元素(假设唯一)并由函数返回被删元素的值。空出的位置由最后一个元素填补,若顺序表为空则显示出错信息并退出运行。 代码如下: 123456789101112131415161718192021222324252627282930313233343536373839#include <iostream>#include <vector>using namespace std;bool EraseMindata(int& value, vector<int> &data) { if (data.si...
Leetcode 53. 最大子序和
题目简介给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 示例: 123输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为6。 思路:做今天的每日一题时,做完以后发现这是一年前做过的,,,就当重新做了一遍了,使用动态规划的思想,dp[i]代表的是以nums[i]结尾的的最大子序和,遍历一遍后,将vector中最大的数返回即可。 代码如下: 1234567891011121314151617181920class Solution {public: i...
Leetcode 3. 无重复字符的最长子串
题目简介:给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 123输入: "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 示例 2: 123输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。 示例 3: 1234输入: "pwwkew"输出: 3解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。  请注意,你的答案必须...
Leetcode 21. 合并两个有序链表
题目简介:将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例: 12输入:1->2->4, 1->3->4输出:1->1->2->3->4->4 思路:​ 使用归并法并成一个链表,将两个链表的首个元素值进行比较,小的那个赋值后往前进一格,大的那个不动,直到有一个链表全部遍历完,再把剩下的还有元素剩余的链表全部赋值即可。 代码如下:1234567891011121314151617181920212223242526272829303132333435363738394041424...
Leetcode 202. 快乐数
题目简介:编写一个算法来判断一个数 n 是不是快乐数。 「快乐数」定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果 可以变为 1,那么这个数就是快乐数。 如果 n 是快乐数就返回 True ;不是,则返回 False 。 示例: 1234567输入:19输出:true解释:12 + 92 = 8282 + 22 = 6862 + 82 = 10012 + 02 + 02 = 1 思路:因为每个数最后的结果,要么是1,要么是无限循环,以下是大佬的证明 设 n=\overline{a_{...
Leetcode 1025. 除数博弈
题目简介爱丽丝和鲍勃一起玩游戏,他们轮流行动。爱丽丝先手开局。 最初,黑板上有一个数字 N 。在每个玩家的回合,玩家需要执行以下操作: 选出任一 x,满足 0 < x < N 且 N % x == 0 。用 N - x 替换黑板上的数字 N 。如果玩家无法执行这些操作,就会输掉游戏。 只有在爱丽丝在游戏中取得胜利时才返回 True,否则返回 false。假设两个玩家都以最佳状态参与游戏。 示例 1: 123输入:2输出:true解释:爱丽丝选择 1,鲍勃无法进行操作。 示例 2: 123输入:3输出:false解释:爱丽丝选择 1,鲍勃也选择 1,然后爱丽丝无法进行操作。 提...
avatar
鸣蜩十九
Always
友链
CSDN BiliBili