![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
力扣
文章平均质量分 58
yy谷莠子
这个作者很懒,什么都没留下…
展开
-
Leetcode1553. 吃掉 N 个橘子的最少天数
【力扣】1553. 吃掉 N 个橘子的最少天数1、题目描述厨房里总共有 n 个橘子,你决定每一天选择如下方式之一吃这些橘子:吃掉一个橘子。如果剩余橘子数 n 能被 2 整除,那么你可以吃掉 n/2 个橘子。如果剩余橘子数 n 能被 3 整除,那么你可以吃掉 2*(n/3) 个橘子。每天你只能从以上 3 种方案中选择一种方案。请你返回吃掉所有 n 个橘子的最少天数。示例 1:输入:n = 10输出:4解释:你总共有 10 个橘子。第 1 天:吃 1 个橘子,剩余橘子数 10 - 1 =原创 2022-01-17 14:31:46 · 655 阅读 · 0 评论 -
Leetcode2. 两数相加
一、题目2. 两数相加 【中等】给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例 1:输入:l1= [2,4,3], l2 = [5,6,4]输出:[7,0,8]解释:342+ 465 = 807.二、解题思路...原创 2022-01-17 14:20:16 · 155 阅读 · 0 评论 -
剑指 Offer II 024. 反转链表
一、题目剑指 Offer II 024. 反转链表同Leetcode206. 反转链表给定单链表的头节点 head ,请反转链表,并返回反转后的链表的头节点。示例 1:输入:head = [1,2,3,4,5]输出:[5,4,3,2,1]二、解题思路解法一:递归【直接调用自身】递归上来就先写终止条件:如果head为空或者head.next为空,返回head新头结点newHead指向尾结点,此处进入递归,递归一直到遍历到尾结点时才会返回每一层递归,该层递归中的head会让下一个节点指原创 2022-01-17 14:19:34 · 251 阅读 · 0 评论 -
Leetcode3. 无重复字符的最长子串
一、题目3. 无重复字符的最长子串 【中等】给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。示例1:输入:s = "abcabcbb"输出:3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。二、解题思路类似题目串联所有单词的子串最小覆盖子串至多包含两个不同字符的最长子串长度最小的子数组滑动窗口最大值字符串的排列最小区间最小窗口子序列...原创 2022-01-17 14:19:54 · 85 阅读 · 0 评论 -
剑指 Offer II 056. 二叉搜索树中两个节点之和
一、题目剑指 Offer II 056. 二叉搜索树中两个节点之和原创 2022-01-14 13:47:21 · 129 阅读 · 0 评论 -
Leetcode1. 两数之和
一、题目1. 两数之和给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例 1:输入:nums= [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。二、解题思路暴力枚举,即枚举数组中的每一个数原创 2022-01-14 13:47:05 · 65 阅读 · 0 评论 -
Leetcode344. 反转字符串
一、题目344. 反转字符串编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。示例 1:输入:["h","e","l","l","o"]输出:["o","l","l","e","h"]二、解题思路...原创 2022-01-14 13:42:34 · 64 阅读 · 0 评论 -
Leetcode541. 反转字符串 II
一、题目541. 反转字符串 II给定一个字符串 s 和一个整数 k,从字符串开头算起,每 2k 个字符反转前 k 个字符。如果剩余字符少于 k 个,则将剩余字符全部反转。如果剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符,其余字符保持原样。示例 1:输入:s = "abcdefg", k = 2输出:"bacdfeg"二、解题思路题解参考将字符串转成列表,通过list[::-1]实现反转利用Python切片其实不需要考虑“剩余字符”的长度这一问题???? pyt原创 2022-01-14 13:42:21 · 78 阅读 · 0 评论 -
Leetcode50. Pow(x, n)
一、题目50. Pow(x, n)实现 pow(x, n) ,即计算 x 的 n 次幂函数(即,x ^n)。示例 1:输入:x = 2.00000, n = 10输出:1024.00000二、知识点1、取模(x * y ) % z ==> ((x % z) * (y % z)) % z总结: 当两个较大的数做乘法时,我们先求余再相乘,可以有效避免溢出。2、快速幂:以O(logn)的时间复杂度完成幂的计算比如我们要计算x的y次方。通常情况我们需要执行y次。但是如果我们将其转化为原创 2022-01-14 13:41:42 · 166 阅读 · 0 评论 -
Leetcode 1两数之和
一、题目leetcode 1两数之和给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例 1:输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。二、解题思路???? 本题是原创 2022-01-14 13:41:03 · 51 阅读 · 0 评论 -
剑指 Offer II 006. 排序数组中两个数字之和
一、题目剑指 Offer II 006. 排序数组中两个数字之和给定一个已按照升序排列的整数数组numbers ,请你从数组中找出两个数满足相加之和等于目标数target 。函数应该以长度为2的整数数组的形式返回这两个数的下标值。numbers的下标从0开始计数 ,所以答案数组应当满足0 <= answer[0] < answer[1] < numbers.length 。假设数组中存在且只存在一对符合条件的数字,同时一个数字不能使用两次。示例1:输入:numbers = [1原创 2022-01-14 13:40:34 · 113 阅读 · 0 评论 -
剑指 Offer 58 - II. 左旋转字符串
一、题目剑指 Offer 58 - II. 左旋转字符串字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。示例 1:输入: s = "abcdefg", k = 2输出: "cdefgab"二、解题思路解法一:题解参考算法流程:(1)新建一个list(Python)、StringBuilder(Java),记为 res ;(2)先向 r原创 2022-01-14 13:39:32 · 86 阅读 · 0 评论 -
剑指 Offer 05. 替换空格
一、题目剑指 Offer 05. 替换空格请实现一个函数,把字符串 s 中的每个空格替换成"%20"。示例 1:输入:s = "We are happy."输出:"We%20are%20happy."二、解题思路解法一:解法一题解参考在 Python 和 Java 等语言中,字符串都被设计成**「不可变」的类型,即无法直接修改字符串的某一位字符,需要新建一个字符串**实现。算法流程:(1)初始化一个 list (Python) / StringBuilder (Java) ,记为 re原创 2022-01-14 13:38:49 · 316 阅读 · 0 评论 -
【python】力扣题
剑指 Offer 09. 用两个栈实现队列一、解题思路1、【队列是先入先出,栈是后入先出】stackA: 入队栈,入队操作,直接压入入队栈即可stackB: 出队栈,出队操作需要优先检查出队栈是否有数据,若无,需要从入队栈倒入后再操作。2、(1)加入队尾 appendTail()函数: 将数字 val 加入栈 A 即可。(2)删除队首deleteHead()函数: 有以下三种情况。当栈 B 不为空: B中仍有已完成倒序的元素,因此直接返回 B 的栈顶元素。否则(栈 B 为空),当 A 为空原创 2021-04-06 16:39:29 · 935 阅读 · 2 评论 -
剑指 Offer II 002. 二进制加法
一、题目剑指 Offer II 002. 二进制加法给定两个 01 字符串 a 和 b ,请计算它们的和,并以二进制字符串的形式输出。输入为 非空 字符串且只包含数字 1 和 0。注:字符串如果不是 “0” ,就都不含前导零。示例 1:输入: a = "11", b = "10"输出: "101"二、解题思路正常加法运算,逢二进一。三、代码四、相同题型本题与主站 67 题相同:https://leetcode-cn.com/problems/add-binary/...原创 2021-08-22 12:50:29 · 141 阅读 · 0 评论 -
剑指 Offer II 001. 整数除法
一、题目剑指 Offer II 001. 整数除法给定两个整数 a 和 b ,求它们的除法的商 a/b ,要求不得使用乘号 ‘*’、除号 ‘/’ 以及求余符号 ‘%’ 。注意: 整数除法的结果应当截去(truncate)其小数部分,例如:truncate(8.345) = 8 以及 truncate(-2.7335) = -2 假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−231, 231−1]。本题中,如果除法结果溢出,则返回 231 − 1示例 1:输入:a =原创 2021-08-22 08:39:45 · 615 阅读 · 0 评论 -
剑指 Offer II 019. 最多删除一个字符得到回文串
一、题目剑指 Offer II 019. 最多删除一个字符得到回文给定一个非空字符串 s,请判断如果 最多 从字符串中删除一个字符能否得到一个回文字符串。示例 1:输入: s = "aba"输出: true二、解题思路符串缩小比较,递归验证回文从外边往中间进行比较当第一个和最后一个值一样的时候,取 1 ~ len(s)-1 (len(s) 为字符串 s 的长度)再次进行比较。如果第一个和最后一个不一样,那么可能删除第一个,也可能删除最后一个,然后对剩下的字符串再次进行比较。在这里插入代原创 2021-08-07 09:17:44 · 202 阅读 · 0 评论 -
剑指 Offer II 012. 左右两边子数组的和相等
一、题目剑指 Offer II 012. 左右两边子数组的和相等同Leetcode 724. 寻找数组的中心下标给你一个整数数组 nums ,请计算数组的 中心下标 。数组 中心下标 是数组的一个下标,其左侧所有元素相加的和等于右侧所有元素相加的和。如果中心下标位于数组最左端,那么左侧数之和视为 0 ,因为在下标的左侧不存在元素。这一点对于中心下标位于数组最右端同样适用。如果数组有多个中心下标,应该返回 最靠近左边 的那一个。如果数组不存在中心下标,返回-1 。示例 1:输入:nums =原创 2021-08-07 08:39:23 · 104 阅读 · 0 评论 -
Leetcode658. 找到 K 个最接近的元素
一、题目658. 找到 K 个最接近的元素原创 2021-08-05 15:58:07 · 113 阅读 · 0 评论 -
面试题01.01. 判定字符是否唯一
位运算。在剑指中有类似的题目OFFER 56, 这里就是设置一个值,mask。然后利用每个字符串的唯一性质(unicode),就将1向左移动unicode的值。得到一个二进制的数值(如100000)如果与的答案为0,就说明没有出现过,将这个位置的1或给mask,不同的字符就代表着不同的位置,这个mask就会在不同的位置变为1。然后循环。...原创 2021-08-04 14:44:21 · 156 阅读 · 0 评论