
leetcode
文章平均质量分 74
InitiativeYu
这个作者很懒,什么都没留下…
展开
-
备战复试,每日三题Day28
备战复试,每日三题 题目一:冒泡排序 冒泡排序的思想:(这里我们按照从小到大排序,讲解) 从头开始比较相邻两个数,若逆序(即前一个数比后一个数要大),则交换这两个数 第一轮冒泡排序下来:待排序数中的最大的数到达最后一个位置,最后一个位置固定,再对前n-1个数进行冒泡排序 第二轮冒泡排序下来:待排序数中的最大的数到达倒数第二个位置,倒数第二个位置固定,再对前n-2个数进行冒泡排序 … 剩下最后一个数不用排序,在第一个位置,为最小的数 void BubbleSort(vector<int>&am原创 2022-02-05 10:35:40 · 646 阅读 · 0 评论 -
备战复试,每日三题Day27
备战复试,每日三题 题目一: 对链表进行插入排序 给定单个链表的头 head ,使用 插入排序 对链表进行排序,并返回 排序后链表的头 。 插入排序 算法的步骤: 插入排序是迭代的,每次只移动一个元素,直到所有元素可以形成一个有序的输出列表。 每次迭代中,插入排序只从输入数据中移除一个待排序的元素,找到它在序列中适当的位置,并将其插入。 重复直到所有输入数据插入完为止。 下面是插入排序算法的一个图形示例。部分排序的列表(黑色)最初只包含列表中的第一个元素。每次迭代时,从输入数据中删除一个元素(红色),并就地原创 2022-02-04 12:41:47 · 1065 阅读 · 0 评论 -
备战复试,每日三题Day26
备战复试,每日三题 题目一: x 的平方根 给你一个非负整数 x ,计算并返回 x 的 算术平方根 。 由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去 。 注意:不允许使用任何内置指数函数和算符,例如 pow(x, 0.5) 或者 x ** 0.5 。 示例 1: 输入:x = 4 输出:2 示例 2: 输入:x = 8 输出:2 解释:8 的算术平方根是 2.82842…, 由于返回类型是整数,小数部分将被舍去。 提示: 0 <= x <= 231 - 1 来源:力扣(Leet原创 2022-02-03 10:30:00 · 184 阅读 · 0 评论 -
备战复试,每日三题Day25
备战复试,每日三题 题目一: 删除链表中的节点 请编写一个函数,用于 删除单链表中某个特定节点 。在设计函数时需要注意,你无法访问链表的头节点 head ,只能直接访问 要被删除的节点 。 题目数据保证需要删除的节点 不是末尾节点 。 示例 1: 输入:head = [4,5,1,9], node = 5 输出:[4,1,9] 解释:指定链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9 示例 2: 输入:head = [4,5,1,9], node =原创 2022-02-02 11:15:00 · 258 阅读 · 0 评论 -
备战复试,每日三题Day24
备战复试,每日三题 题目一: 奇偶链表 给定单链表的头节点 head ,将所有索引为奇数的节点和索引为偶数的节点分别组合在一起,然后返回重新排序的列表。 第一个节点的索引被认为是 奇数 , 第二个节点的索引为 偶数 ,以此类推。 请注意,偶数组和奇数组内部的相对顺序应该与输入时保持一致。 你必须在 O(1) 的额外空间复杂度和 O(n) 的时间复杂度下解决这个问题。 示例 1: 输入: head = [1,2,3,4,5] 输出: [1,3,5,2,4] 示例 2: 输入: head = [2,1,3,5,原创 2022-02-01 12:07:50 · 168 阅读 · 0 评论 -
备战复试,每日三题Day23
备战复试,每日三题 题目一: 将数字变成 0 的操作次数 给你一个非负整数 num ,请你返回将它变成 0 所需要的步数。 如果当前数字是偶数,你需要把它除以 2 ;否则,减去 1 。 示例 1: 输入:num = 14 输出:6 解释: 步骤 1) 14 是偶数,除以 2 得到 7 。 步骤 2) 7 是奇数,减 1 得到 6 。 步骤 3) 6 是偶数,除以 2 得到 3 。 步骤 4) 3 是奇数,减 1 得到 2 。 步骤 5) 2 是偶数,除以 2 得到 1 。 步骤 6) 1 是奇数,减 1 得原创 2022-01-31 10:15:38 · 786 阅读 · 0 评论 -
备战复试,每日三题Day22
备战复试,每日三题 题目一: 排序链表 给你链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表 。 示例 1: 输入:head = [4,2,1,3] 输出:[1,2,3,4] 示例 2: 输入:head = [-1,5,3,4,0] 输出:[-1,0,3,4,5] 示例 3: 输入:head = [] 输出:[] 提示: 链表中节点的数目在范围 [0, 5 * 104] 内 -105 <= Node.val <= 105 来源:力扣(LeetCode) 链接:https://l原创 2022-01-30 12:35:39 · 1222 阅读 · 0 评论 -
备战复试,每日三题Day21
备战复试,每日三题 题目一: 打家劫舍 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。 示例 1: 输入:[1,2,3,1] 输出:4 解释:偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。 偷窃到的最高金额 = 1 + 3 = 4原创 2022-01-29 14:15:10 · 127 阅读 · 0 评论 -
备战复试,每日三题Day21
备战复试,每日三题 题目一: 填充每个节点的下一个右侧节点指针 给定一个 完美二叉树 ,其所有叶子节点都在同一层,每个父节点都有两个子节点。二叉树定义如下: struct Node { int val; Node *left; Node *right; Node *next; } 填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL。 初始状态下,所有 next 指针都被设置为 NULL。 示例 1: 输入:root = [1,2,3,原创 2022-01-28 11:12:59 · 196 阅读 · 0 评论 -
备战复试,每日三题Day20
备战复试,每日三题 题目一: 旋转图像 给定一个 n × n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。 示例 1: 输入:matrix = [[1,2,3],[4,5,6],[7,8,9]] 输出:[[7,4,1],[8,5,2],[9,6,3]] 示例 2: 输入:matrix = [[5,1,9,11],[2,4,8,10],[13,3,6,7],[15,14,12,16]原创 2022-01-27 13:56:06 · 647 阅读 · 0 评论 -
备战复试,每日三题Day19
备战复试,每日三题 题目一: 寻找数组的中心下标 给你一个整数数组 nums ,请计算数组的 中心下标 。 数组 中心下标 是数组的一个下标,其左侧所有元素相加的和等于右侧所有元素相加的和。 如果中心下标位于数组最左端,那么左侧数之和视为 0 ,因为在下标的左侧不存在元素。这一点对于中心下标位于数组最右端同样适用。 如果数组有多个中心下标,应该返回 最靠近左边 的那一个。如果数组不存在中心下标,返回 -1 。 示例 1: 输入:nums = [1, 7, 3, 6, 5, 6] 输出:3 解释: 中心下标原创 2022-01-26 13:32:18 · 81 阅读 · 0 评论 -
备战复试,每日三题Day18
备战复试,每日三题 题目一: 相交链表 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。 图示两个链表在节点 c1 开始相交: 题目数据 保证 整个链式结构中不存在环。 注意,函数返回结果后,链表必须 保持其原始结构 。 自定义评测: 评测系统 的输入如下(你设计的程序 不适用 此输入): intersectVal - 相交的起始节点的值。如果不存在相交节点,这一值为 0 listA - 第一个链表 listB -原创 2022-01-25 11:45:00 · 122 阅读 · 0 评论 -
备战复试,每日三题Day17
备战复试,每日三题 题目一: 平衡括号字符串的最少插入次数 给你一个括号字符串 s ,它只包含字符 ‘(’ 和 ‘)’ 。一个括号字符串被称为平衡的当它满足: 任何左括号 ‘(’ 必须对应两个连续的右括号 ‘))’ 。 左括号 ‘(’ 必须在对应的连续两个右括号 ‘))’ 之前。 比方说 “())”, “())(())))” 和 “(())())))” 都是平衡的, “)()”, “()))” 和 “(()))” 都是不平衡的。 你可以在任意位置插入字符 ‘(’ 和 ‘)’ 使字符串平衡。 请你返回让 s原创 2022-01-24 12:00:00 · 148 阅读 · 0 评论 -
备战复试,每日三题Day16
备战复试,每日三题 题目一: 移动零 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 示例: 输入: [0,1,0,3,12] 输出: [1,3,12,0,0] 说明: 必须在原数组上操作,不能拷贝额外的数组。 尽量减少操作次数。 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/move-zeroes class Solution { public: void moveZeroes(vector&原创 2022-01-23 12:05:04 · 73 阅读 · 0 评论 -
备战复试,每日三题Day15
备战复试,每日三题 题目一: 字符串的排列 给你两个字符串 s1 和 s2 ,写一个函数来判断 s2 是否包含 s1 的排列。如果是,返回 true ;否则,返回 false 。 换句话说,s1 的排列之一是 s2 的 子串 。 示例 1: 输入:s1 = “ab” s2 = “eidbaooo” 输出:true 解释:s2 包含 s1 的排列之一 (“ba”). 示例 2: 输入:s1= “ab” s2 = “eidboaoo” 输出:false 提示: 1 <= s1.length, s2.len原创 2022-01-22 12:53:46 · 109 阅读 · 0 评论 -
备战复试,每日三题Day14
备战复试,每日三题 题目一: 爱吃香蕉的珂珂 珂珂喜欢吃香蕉。这里有 N 堆香蕉,第 i 堆中有 piles[i] 根香蕉。警卫已经离开了,将在 H 小时后回来。 珂珂可以决定她吃香蕉的速度 K (单位:根/小时)。每个小时,她将会选择一堆香蕉,从中吃掉 K 根。如果这堆香蕉少于 K 根,她将吃掉这堆的所有香蕉,然后这一小时内不会再吃更多的香蕉。 珂珂喜欢慢慢吃,但仍然想在警卫回来前吃掉所有的香蕉。 返回她可以在 H 小时内吃掉所有香蕉的最小速度 K(K 为整数)。 示例 1: 输入: piles = [3原创 2022-01-21 13:29:12 · 84 阅读 · 0 评论 -
备战复试,每日三题Day13
备战复试,每日三题 题目一: 求根节点到叶节点数字之和 给你一个二叉树的根节点 root ,树中每个节点都存放有一个 0 到 9 之间的数字。 每条从根节点到叶节点的路径都代表一个数字: 例如,从根节点到叶节点的路径 1 -> 2 -> 3 表示数字 123 。 计算从根节点到叶节点生成的 所有数字之和 。 叶节点 是指没有子节点的节点。 示例 1: 输入:root = [1,2,3] 输出:25 解释: 从根到叶子节点路径 1->2 代表数字 12 从根到叶子节点路径 1->3 代原创 2022-01-20 14:34:25 · 179 阅读 · 0 评论 -
备战复试,每日三题Day12
备战复试,每日三题 题目一:除数博弈 爱丽丝和鲍勃一起玩游戏,他们轮流行动。爱丽丝先手开局。 最初,黑板上有一个数字 N 。在每个玩家的回合,玩家需要执行以下操作: 选出任一 x,满足 0 < x < N 且 N % x == 0 。 用 N - x 替换黑板上的数字 N 。 如果玩家无法执行这些操作,就会输掉游戏。 只有在爱丽丝在游戏中取得胜利时才返回 True,否则返回 False。假设两个玩家都以最佳状态参与游戏。 示例 1: 输入:2 输出:true 解释:爱丽丝选择 1,鲍勃无法进行操原创 2022-01-19 13:04:47 · 107 阅读 · 0 评论 -
备战复试,每日三题Day11
备战复试,每日三题 题目一: 最大二叉树 给定一个不含重复元素的整数数组 nums 。一个以此数组直接递归构建的 最大二叉树 定义如下: 二叉树的根是数组 nums 中的最大元素。 左子树是通过数组中 最大值左边部分 递归构造出的最大二叉树。 右子树是通过数组中 最大值右边部分 递归构造出的最大二叉树。 返回有给定数组 nums 构建的 最大二叉树 。 示例 1: 输入:nums = [3,2,1,6,0,5] 输出:[6,3,5,null,2,0,null,null,1] 解释:递归调用如下所示: [3原创 2022-01-18 16:44:20 · 611 阅读 · 0 评论 -
备战复试,每日三题Day10
备战复试,每日三题 题目一: 买卖股票的最佳时机II 给定一个数组 prices ,其中 prices[i] 是一支给定股票第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。 注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。 示例 1: 输入: prices = [7,1,5,3,6,4] 输出: 7 解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5-原创 2022-01-17 13:49:41 · 86 阅读 · 0 评论 -
备战复试,每日三题Day09
备战复试,每日三题 题目一: 比特位计数 给你一个整数 n ,对于 0 <= i <= n 中的每个 i ,计算其二进制表示中 1 的个数 ,返回一个长度为 n + 1 的数组 ans 作为答案。 示例 1: 输入:n = 2 输出:[0,1,1] 解释: 0 --> 0 1 --> 1 2 --> 10 示例 2: 输入:n = 5 输出:[0,1,1,2,1,2] 解释: 0 --> 0 1 --> 1 2 --> 10 3 --> 11 4 --&原创 2022-01-16 12:48:54 · 93 阅读 · 0 评论 -
全排列(Java版)
给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。 示例 1: 输入:nums = [1,2,3] 输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]] 示例 2: 输入:nums = [0,1] 输出:[[0,1],[1,0]] 示例 3: 输入:nums = [1] 输出:[[1]] 提示: 1 <= nums.length <= 6 -10 <= nums[i] <原创 2021-07-26 22:54:48 · 423 阅读 · 0 评论