
刷题
pearz
这个作者很懒,什么都没留下…
展开
-
leetcode209. 长度最小的子数组
leetcode209. 长度最小的子数组原创 2022-07-14 17:58:07 · 109 阅读 · 0 评论 -
leetcode977. 有序数组的平方
977.有序数组的平方原创 2022-07-14 12:23:39 · 259 阅读 · 0 评论 -
剑指 Offer 17. 打印从1到最大的n位数
地址:https://leetcode.cn/problems/shu-zhi-de-zheng-shu-ci-fang-lcof/描述:实现 pow(x, n) ,即计算 x 的 n 次幂函数(即,xnx^nxn)。不得使用库函数,同时不需要考虑大数问题。实例1:输入:x = 2.00000, n = 10输出:1024.00000实例2:输入:x = 2.10000, n = 3输出:9.26100实例3:输入:x = 2.00000, n = -2输出:0.25000原创 2022-05-13 21:30:55 · 123 阅读 · 0 评论 -
剑指 Offer 15. 二进制中1的个数
地址:https://leetcode.cn/problems/er-jin-zhi-zhong-1de-ge-shu-lcof/描述:编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为 汉明重量).)。提示:请注意,在某些语言(如 Java)中,没有无符号整数类型。在这种情况下,输入和输出都将被指定为有符号整数类型,并且不应影响您的实现,因为无论整数是有符号的还是无符号的,其内部的二进制表示形式都是相同的。在 Java 中,编译器使原创 2022-05-13 19:49:35 · 101 阅读 · 0 评论 -
刷题记录(leetcode、剑指offer)
刷题记录原创 2022-04-18 19:39:55 · 447 阅读 · 0 评论 -
剑指 Offer 10- I. 斐波那契数列
其他解法:动态规划(比较简单,略)地址:https://leetcode-cn.com/problems/fei-bo-na-qi-shu-lie-lcof/描述:写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项(即 F(N))。斐波那契数列的定义如下:F(0) = 0, F(1) = 1F(N) = F(N - 1) + F(N - 2), 其中 N > 1.斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。答案需要取模 1e原创 2022-05-12 21:40:36 · 236 阅读 · 0 评论 -
leetcode72. 编辑距离
地址:https://leetcode-cn.com/problems/edit-distance/描述:给你两个单词 word1 和 word2, 请返回将 word1 转换成 word2 所使用的最少操作数。你可以对一个单词进行如下三种操作:插入一个字符删除一个字符替换一个字符实例1:输入:word1 = “horse”, word2 = “ros”输出:3解释:horse -> rorse (将 ‘h’ 替换为 ‘r’)rorse -> rose (删除 ‘r原创 2022-05-12 21:37:09 · 142 阅读 · 0 评论 -
leetcode516. 最长回文子序列
地址:https://leetcode-cn.com/problems/longest-palindromic-subsequence/描述:给你一个字符串 s ,找出其中最长的回文子序列,并返回该序列的长度。子序列定义为:不改变剩余字符顺序的情况下,删除某些字符或者不删除任何字符形成的一个序列。实例1:输入:s = “bbbab”输出:4解释:一个可能的最长回文子序列为 “bbbb” 。实例2:输入:s = “cbbd”输出:2解释:一个可能的最长回文子序列为 “bb” 。原创 2022-05-12 21:38:25 · 199 阅读 · 0 评论 -
leetcode115. 不同的子序列
地址:https://leetcode-cn.com/problems/distinct-subsequences/描述:给定一个字符串 s 和一个字符串 t ,计算在 s 的子序列中 t 出现的个数。字符串的一个子序列是指,通过删除一些(也可以不删除)字符且不干扰剩余字符相对位置所组成的新字符串。(例如,“ACE” 是 “ABCDE” 的一个子序列,而 “AEC” 不是)题目数据保证答案符合 32 位带符号整数范围。实例1:输入:s = “rabbbit”, t = “rabbit”输出:原创 2022-05-11 13:03:39 · 236 阅读 · 0 评论 -
leetcode1035. 不相交的线
地址:https://leetcode-cn.com/problems/uncrossed-lines/描述:在两条独立的水平线上按给定的顺序写下 nums1 和 nums2 中的整数。现在,可以绘制一些连接两个数字 nums1[i] 和 nums2[j] 的直线,这些直线需要同时满足满足:nums1[i] == nums2[j]且绘制的直线不与任何其他连线(非水平线)相交。请注意,连线即使在端点也不能相交:每个数字只能属于一条连线。以这种方法绘制线条,并返回可以绘制的最大连线数。实例1原创 2022-05-11 13:02:01 · 109 阅读 · 0 评论 -
leetcode1143. 最长公共子序列
地址:https://leetcode-cn.com/problems/longest-common-subsequence/描述: 给定两个字符串 text1 和 text2,返回这两个字符串的最长公共子序列的长度。如果不存在公共子序列 ,返回 0 。 一个字符串的子序列是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。例如,“ace” 是 “abcde” 的子序列,但 “aec” 不是 “abcde” 的子序列。两原创 2022-05-11 12:58:36 · 197 阅读 · 0 评论 -
leetcode718. 最长重复子数组
地址:https://leetcode-cn.com/problems/maximum-length-of-repeated-subarray/描述: 给两个整数数组 nums1 和 nums2 ,返回两个数组中公共的 、长度最长的子数组的长度 。实例1:输入:nums1 = [1,2,3,2,1], nums2 = [3,2,1,4,7]输出:3解释:长度最长的公共子数组是 [3,2,1] 。实例2:输入:nums1 = [0,0,0,0,0], nums2 = [0,0,0,0,原创 2022-05-11 12:57:23 · 121 阅读 · 0 评论 -
leetcode300. 最长递增子序列
地址:https://leetcode-cn.com/problems/longest-increasing-subsequence/描述: 给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。 子序列是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。实例1:输入:nums = [10,9,2,5,3,7,101,18]输出:4解释:最长递增子序列是 [2,3,7,101],原创 2022-05-11 12:56:23 · 111 阅读 · 0 评论 -
leetcode309. 最佳买卖股票时机含冷冻期
地址:https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-with-cooldown/描述: 给定一个整数数组prices,其中第 prices[i] 表示第 i 天的股票价格 。 设计一个算法计算出最大利润。在满足以下约束条件下,你可以尽可能地完成更多的交易(多次买卖一支股票):卖出股票后,你无法在第二天买入股票 (即冷冻期为 1 天)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。原创 2022-05-11 12:55:04 · 169 阅读 · 0 评论 -
leetcode188.买卖股票的最佳时机 IV
地址:https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-iv/描述: 给定一个整数数组 prices,它的第 i 个元素 prices[i] 是一支给定的股票在第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你最多可以完成 k 笔交易。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。实例1:输入:k = 2, prices = [2,4,1]输出:2解释:在第 1 天 (股票原创 2022-05-11 12:53:45 · 195 阅读 · 0 评论 -
leetcode123.买卖股票的最佳时机 III
地址:https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-iii/描述: 给定一个数组,它的第 i 个元素是一支给定的股票在第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你最多可以完成两笔交易。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。实例1:输入:prices = [3,3,5,0,0,3,1,4]输出:6解释:在第 4 天(股票价格 = 0)的时候买入,在第 6 天原创 2022-05-11 12:52:45 · 174 阅读 · 0 评论 -
剑指 Offer 14- II. 剪绳子 II
地址:https://leetcode.cn/problems/jian-sheng-zi-ii-lcof/描述:给你一根长度为 n 的绳子,请把绳子剪成整数长度的 m 段(m、n都是整数,n>1并且m>1),每段绳子的长度记为 k[0],k[1]…k[m - 1] 。请问 k[0]*k[1]*…*k[m - 1] 可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。答案需要取模 1e9+7(1000000007),如计算初始结原创 2022-05-11 12:51:06 · 978 阅读 · 0 评论 -
leetcode714. 买卖股票的最佳时机含手续费
地址:https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-with-transaction-fee/描述: 给定一个整数数组 prices,其中 prices[i]表示第 i 天的股票价格 ;整数 fee 代表了交易股票的手续费用。 你可以无限次地完成交易,但是你每笔交易都需要付手续费。如果你已经购买了一个股票,在卖出它之前你就不能再继续购买股票了。 返回获得利润的最大值。注意:这里的一笔交易指买入持有并卖出股票的原创 2022-05-11 12:49:30 · 75 阅读 · 0 评论 -
leetcode122. 买卖股票的最佳时机 II
地址:https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-ii/描述: 给你一个整数数组 prices ,其中 prices[i] 表示某支股票第 i 天的价格。 在每一天,你可以决定是否购买和/或出售股票。你在任何时候最多只能持有一股股票。你也可以先购买,然后在同一天出售。 返回 你能获得的最大利润 。实例1:输入:prices = [7,1,5,3,6,4]输出:7解释:在第 2 天(股票价格 = 1)原创 2022-05-10 21:01:49 · 142 阅读 · 0 评论 -
leetcode121. 买卖股票的最佳时机
地址:https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock/描述: 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择某一天买入这只股票,并选择在未来的某一个不同的日子卖出该股票。设计一个算法来计算你所能获取的最大利润。 返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。实例1:输入:[7,1,5,3,6,4]输出:5解原创 2022-05-10 20:59:46 · 145 阅读 · 0 评论 -
leetcode53. 最大子数组和
地址:https://leetcode-cn.com/problems/maximum-subarray/描述:给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。子数组是数组中的一个连续部分。实例1:输入:nums = [-2,1,-3,4,-1,2,1,-5,4]输出:6解释:连续子数组 [4,-1,2,1] 的和最大,为 6 。实例2:输入:nums = [1]输出:1实例3:输入:nums = [5,4,-1,7原创 2022-05-10 20:55:14 · 138 阅读 · 0 评论 -
剑指 Offer 12. 矩阵中的路径
地址:https://leetcode-cn.com/problems/ju-zhen-zhong-de-lu-jing-lcof/描述:给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。例如,在下面的 3×4 的矩阵中包含单词 “ABCCED”(单词中的字母原创 2022-05-10 20:52:44 · 93 阅读 · 0 评论 -
剑指 Offer 13. 机器人的运动范围
地址:https://leetcode-cn.com/problems/ji-qi-ren-de-yun-dong-fan-wei-lcof/描述:地上有一个m行n列的方格,从坐标 [0,0] 到坐标 [m-1,n-1] 。一个机器人从坐标 [0, 0] 的格子开始移动,它每次可以向左、右、上、下移动一格(不能移动到方格外),也不能进入行坐标和列坐标的数位之和大于k的格子。例如,当k为18时,机器人能够进入方格 [35, 37] ,因为3+5+3+7=18。但它不能进入方格 [35, 38],因为3+5原创 2022-05-10 20:49:57 · 87 阅读 · 0 评论 -
剑指 Offer 06. 从尾到头打印链表
地址:https://leetcode-cn.com/problems/cong-wei-dao-tou-da-yin-lian-biao-lcof/描述:输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。实例1:输入:head = [1,3,2]输出:[2,3,1]思路:栈答案:class Solution { public int[] reversePrint(ListNode head) { LinkedList<Integer>原创 2022-05-10 20:46:18 · 135 阅读 · 0 评论 -
leetcode647. 回文子串
地址:https://leetcode-cn.com/problems/palindromic-substrings/描述:给你一个字符串 s ,请你统计并返回这个字符串中回文子串的数目。回文字符串是正着读和倒过来读一样的字符串。子字符串是字符串中的由连续字符组成的一个序列。具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被视作不同的子串。实例1:输入:s = “abc”输出:3解释:三个回文子串: “a”, “b”, “c”实例2:输入:s = “aaa”输出:原创 2022-05-10 20:41:43 · 83 阅读 · 0 评论 -
剑指 Offer 05. 替换空格
地址:https://leetcode-cn.com/problems/ti-huan-kong-ge-lcof/描述:请实现一个函数,把字符串 s 中的每个空格替换成"%20"。实例1:输入:s = “We are happy.”输出:“We%20are%20happy.”答案:class Solution { public String replaceSpace(String s) { StringBuilder sb = new StringBuilder()原创 2022-05-10 20:23:04 · 84 阅读 · 0 评论 -
剑指 Offer 11. 旋转数组的最小数字
地址:https://leetcode-cn.com/problems/xuan-zhuan-shu-zu-de-zui-xiao-shu-zi-lcof/描述:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。给你一个可能存在重复元素值的数组 numbers ,它原来是一个升序排列的数组,并按上述情形进行了一次旋转。请返回旋转数组的最小元素。例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一次旋转,该数组的最小值为 1。注意,数组 [a[0], a[1], a[2原创 2022-05-10 20:21:15 · 77 阅读 · 0 评论 -
剑指 Offer 04. 二维数组中的查找
地址:https://leetcode-cn.com/problems/er-wei-shu-zu-zhong-de-cha-zhao-lcof/描述:在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。实例1:现有矩阵 matrix 如下:[[ 1, 4, 7, 11, 15],[ 2, 5, 8, 12, 19],[ 3, 6原创 2022-05-10 20:15:34 · 79 阅读 · 0 评论