摘要: 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。 不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。 &nbs 阅读全文
posted @ 2021-01-07 09:05 付旭洋 阅读(77) 评论(0) 推荐(0) 编辑
摘要: 给定一个包含 [0, n] 中 n 个数的数组 nums ,找出 [0, n] 这个范围内没有出现在数组中的那个数。 进阶: 你能否实现线性时间复杂度、仅使用额外常数空间的算法解决此问题? 示例 1: 输入:nums = [3,0,1] 输出:2 解释:n = 3,因为有 3 个数字,所以所有的数字 阅读全文
posted @ 2021-01-07 09:04 付旭洋 阅读(65) 评论(0) 推荐(0) 编辑
摘要: 给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。   示例 1: 给定数组 nums = [1,1,2], 函数应该返回新的长度 阅读全文
posted @ 2021-01-07 09:03 付旭洋 阅读(72) 评论(0) 推荐(0) 编辑
摘要: 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。 示例 1: 输入: s = "anagram", t = "nagaram" 输出: true 示例 2: 输入: s = "rat", t = & 阅读全文
posted @ 2021-01-07 09:02 付旭洋 阅读(69) 评论(0) 推荐(0) 编辑
摘要: 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。” 例如,给定如下二叉树:&nb 阅读全文
posted @ 2021-01-07 09:01 付旭洋 阅读(77) 评论(0) 推荐(0) 编辑
摘要: 请判断一个链表是否为回文链表。 示例 1: 输入: 1 >2 输出: false 示例 2: 输入: 1 >2 >2 >1 输出: true 进阶: 你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题? C 代码 / Definition for sin 阅读全文
posted @ 2021-01-07 09:00 付旭洋 阅读(42) 评论(0) 推荐(0) 编辑
摘要: 给定一个二叉搜索树,编写一个函数 kthSmallest 来查找其中第 k 个最小的元素。 说明: 你可以假设 k 总是有效的,1 ≤ k ≤ 二叉搜索树元素个数。 示例 1: 输入: root = [3,1,4,null,2], k = 1 3 阅读全文
posted @ 2021-01-07 08:59 付旭洋 阅读(76) 评论(0) 推荐(0) 编辑
摘要: 给你一个链表数组,每个链表都已经按升序排列。 请你将所有链表合并到一个升序链表中,返回合并后的链表。   示例 1: 输入:lists = [[1,4,5],[1,3,4],[2,6]] 输出:[1,1,2,3,4,4,5,6] 解释:链表数组如下: [ 1 >4 >5, 1 阅读全文
posted @ 2021-01-07 08:58 付旭洋 阅读(56) 评论(0) 推荐(0) 编辑
摘要: 翻转一棵二叉树。 示例: 输入: 4 / \ 2 7 / \ / \ 1 3 6 9 输出: 4 / \ 7 2 / \ / \ 9 6 3 1 备注: 这个问题是受到 Max Howell 的 原问题 启发的 : 谷歌:我们90%的工程师使用您编写的软件(Homebrew),但是您却无法在面试时在 阅读全文
posted @ 2021-01-07 08:57 付旭洋 阅读(64) 评论(0) 推荐(0) 编辑
摘要: 给出一个完全二叉树,求出该树的节点个数。 说明: 完全二叉树的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第 h 层,则该层包含 1~ 2h 个节点。 示例: 输入: 1 / \ 2 阅读全文
posted @ 2021-01-07 08:56 付旭洋 阅读(70) 评论(0) 推荐(0) 编辑
摘要: 给定一个整数数组和一个整数 k,判断数组中是否存在两个不同的索引 i 和 j,使得 nums [i] = nums [j],并且 i 和 j 的差的 绝对值 至多为 k。   示例 1: 输入: nums = [1,2, 阅读全文
posted @ 2021-01-07 08:55 付旭洋 阅读(47) 评论(0) 推荐(0) 编辑
摘要: 给定一个整数数组,判断是否存在重复元素。 如果任意一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。   示例 1: 输入: [1,2,3,1] 输出: true 示例 2: 输入: [1,2,3,4] 输出: false 示例 3 阅读全文
posted @ 2021-01-07 08:54 付旭洋 阅读(49) 评论(0) 推荐(0) 编辑
摘要: 在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。 示例 1: 输入: [3,2,1,5,6,4] 和 k = 2 输出: 5 示例 2: 输入: [3,2,3,1,2,4,5,5,6] 和 k = 4 输出: 4 阅读全文
posted @ 2021-01-07 08:53 付旭洋 阅读(60) 评论(0) 推荐(0) 编辑
摘要: 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。    示例: 输入:1 >2 >4, 1 >3 >4 输出:1 >1 >2 >3 >4 >4 C 代码 阅读全文
posted @ 2021-01-07 08:52 付旭洋 阅读(65) 评论(0) 推荐(0) 编辑
摘要: 反转一个单链表。 示例: 输入: 1 >2 >3 >4 >5 >NULL 输出: 5 >4 >3 >2 >1 >NULL 进阶: 你可以迭代或递归地反转链表。你能否用两种方法解决这道题? C 代码 阅读全文
posted @ 2021-01-07 08:51 付旭洋 阅读(45) 评论(0) 推荐(0) 编辑
摘要: 给定两个字符串 s 和 t,判断它们是否是同构的。 如果 s 中的字符可以被替换得到 t ,那么这两个字符串是同构的。 所有出现的字符都必须用另一个字符替换,同时保留字符的顺序。两个字符不能映射到同一个字符上,但字符可以映射自己本 阅读全文
posted @ 2021-01-07 08:50 付旭洋 阅读(57) 评论(0) 推荐(0) 编辑
摘要: 编写一个算法来判断一个数 n 是不是快乐数。 「快乐数」定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果 可以变为  1,那么这个数就是快乐数。 如果 n 是快乐数就返回 True ;不是, 阅读全文
posted @ 2021-01-07 08:49 付旭洋 阅读(59) 评论(0) 推荐(0) 编辑
摘要: 给定一个只包括 & 39;(& 39;,& 39;)& 39;,& 39;{& 39;,& 39;}& 39;,& 39;[& 39;,& 39;]& 39; 的字符串,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 注意空字符串 阅读全文
posted @ 2021-01-07 08:48 付旭洋 阅读(61) 评论(0) 推荐(0) 编辑
摘要: 给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。 您可以假设除了数字 0 之外,这两个数都不会以 阅读全文
posted @ 2021-01-07 08:47 付旭洋 阅读(59) 评论(0) 推荐(0) 编辑
摘要: 给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。 示例: 输入: [1,2,3,null,5,null,4] 输出: [1, 3, 4] 解释: 1 < / \ 2 3 < \ \ 5 4 < C 代码 阅读全文
posted @ 2021-01-07 08:46 付旭洋 阅读(67) 评论(0) 推荐(0) 编辑