摘要: 题目:给定一个范围在 1 ≤ a[i] ≤ n ( n = 数组大小 ) 的 整型数组,数组中的元素一些出现了两次,另一些只出现一次。找到所有在 [1, n] 范围之间没有出现在数组中的数字。您能在不使用额外空间且时间复杂度为O(n)的情况下完成这个任务吗? 你可以假定返回的数组不算在额外空间内。 阅读全文
posted @ 2021-05-19 23:35 icyyyy 阅读(44) 评论(0) 推荐(0)
摘要: 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 请注意 ,必须在不复制数组的情况下原地对数组进行操作。 示例 1: 输入: nums = [0,1,0,3,12]输出: [1,3,12,0,0]示例 2: 输入: nums = [0]输出: [0] 提 阅读全文
posted @ 2021-05-19 23:00 icyyyy 阅读(81) 评论(0) 推荐(0)
摘要: 给你一个单链表的头节点 head ,请你判断该链表是否为回文链表。如果是,返回 true ;否则,返回 false 。 示例 1: 输入:head = [1,2,2,1] 输出:true示例 2: 输入:head = [1,2] 输出:false 提示: 链表中节点数目在范围[1, 105] 内 0 阅读全文
posted @ 2021-05-19 22:55 icyyyy 阅读(114) 评论(0) 推荐(0)
摘要: 给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。 示例 1: 输入:root = [4,2,7,1,3,6,9] 输出:[4,7,2,9,6,3,1] 示例 2: 输入:root = [2,1,3] 输出:[2,3,1] 示例 3: 输入:root = [] 输出:[] 提示: 阅读全文
posted @ 2021-05-19 22:16 icyyyy 阅读(113) 评论(0) 推荐(0)
摘要: 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 示例 1: 输入:head = [1,2,3,4,5] 输出:[5,4,3,2,1]示例 2: 输入:head = [1,2] 输出:[2,1] 示例 3: 输入:head = [] 输出:[] 思路1:迭代 以链表的头部节点为基准 阅读全文
posted @ 2021-05-19 22:04 icyyyy 阅读(83) 评论(0) 推荐(0)
摘要: 题目:给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。进阶:尝试设计时间复杂度为 O(n)、空间复杂度为 O(1) 的算法解决此问题 思路: 代码: 1 /** 2 * @param 阅读全文
posted @ 2021-05-19 21:22 icyyyy 阅读(35) 评论(0) 推荐(0)
摘要: 题目:编写一个程序,找到两个单链表相交的起始节点。 注意: 如果两个链表没有交点,返回 null. 在返回结果后,两个链表仍须保持原有的结构。 可假定整个链表结构中没有循环。 程序尽量满足 O(n) 时间复杂度,且仅用 O(1) 内存。 思路: 如果 A、B 两链表相交,则 A 、B 自相交点往后的 阅读全文
posted @ 2021-05-19 20:57 icyyyy 阅读(117) 评论(0) 推荐(0)
摘要: 题目:设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。 push(x) —— 将元素 x 推入栈中。 pop() —— 删除栈顶的元素。 top() —— 获取栈顶元素。 getMin() —— 检索栈中的最小元素。 提示:pop、top 和 getMin 操作 阅读全文
posted @ 2021-05-19 20:19 icyyyy 阅读(104) 评论(0) 推荐(0)
摘要: 给你一个链表的头节点 head ,判断链表中是否有环。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。注意:pos 不作为参数进行传递 。仅仅是为了标识链表的 阅读全文
posted @ 2021-05-19 17:34 icyyyy 阅读(52) 评论(0) 推荐(0)
摘要: 题目:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 思路:异或运算符在两个二进制位不同时返回1,相同时返回0 代码: 1 /** 2 * @param {number[]} 阅读全文
posted @ 2021-05-19 17:03 icyyyy 阅读(52) 评论(0) 推荐(0)
摘要: 题目:给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 阅读全文
posted @ 2021-05-19 16:40 icyyyy 阅读(43) 评论(0) 推荐(0)
摘要: 给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最大深度 3 。 思路: 深度优先遍历DFS+ 分治 阅读全文
posted @ 2021-05-19 15:18 icyyyy 阅读(59) 评论(0) 推荐(0)
摘要: 给你一个二叉树的根节点 root , 检查它是否轴对称。 示例一: 输入:root = [1,2,2,3,4,4,3] 输出:true 示例 2: 输入:root = [1,2,2,null,3,null,3] 输出:false 提示: 树中节点数目在范围 [1, 1000] 内 -100 <= N 阅读全文
posted @ 2021-05-19 15:00 icyyyy 阅读(86) 评论(0) 推荐(0)
摘要: 给定一个二叉树的根节点 root ,返回 它的 中序 遍历 。 示例 1: 输入:root = [1,null,2,3] 输出:[1,3,2] 示例 2: 输入:root = [] 输出:[] 示例 3: 输入:root = [1] 输出:[1] 提示: 树中节点数目在范围 [0, 100] 内 - 阅读全文
posted @ 2021-05-19 14:46 icyyyy 阅读(120) 评论(0) 推荐(0)