dp
我很忙2010
咩
展开
-
leetcode 统计放置房子的方式数
一条街道上共有 个 地块 ,街道的两侧各有 个地块。每一边的地块都按从 到 编号。每个地块上都可以放置一所房子。现要求街道同一侧不能存在两所房子相邻的情况,请你计算并返回放置房屋的方式数目。由于答案可能很大,需要对 取余后再返回。注意,如果一所房子放置在这条街某一侧上的第 个地块,不影响在另一侧的第 个地块放置房子。示例 1:输入:n = 1输出:4解释:可能的放置方式:1. 所有地块都不放置房子。2. 一所房子放在街道的某一侧。3. 一所房子放在街道的另一侧。4. 放置两所房原创 2022-06-26 15:14:14 · 258 阅读 · 0 评论 -
leetcode 相同元素的间隔之和
给你一个下标从0开始、由n个整数组成的数组arr。arr中两个元素的间隔定义为它们下标之间的绝对差。更正式地,arr[i]和arr[j]之间的间隔是|i - j|。返回一个长度为n的数组intervals,其中intervals[i]是arr[i]和arr中每个相同元素(与arr[i]的值相同)的间隔之和。注意:|x|是x的绝对值。示例 1:输入:arr = [2,1,3,1,2,3,3]输出:[4,2,7,2,4...原创 2021-12-26 17:50:23 · 701 阅读 · 0 评论 -
leetcode 5658. 任意子数组和的绝对值的最大值(C++)
给你一个整数数组nums。一个子数组[numsl, numsl+1, ..., numsr-1, numsr]的和的绝对值为abs(numsl+ numsl+1+ ... + numsr-1+ numsr)。请你找出nums中和的绝对值最大的任意子数组(可能为空),并返回该最大值。abs(x)定义如下:如果x是负整数,那么abs(x) = -x。 如果x是非负整数,那么abs(x) = x。示例 1:输入:nums = [1,-...原创 2021-02-07 00:15:58 · 350 阅读 · 0 评论 -
leetcode 5559. 得到山形数组的最少删除次数(C++)
我们定义arr是山形数组当且仅当它满足:arr.length >= 3 存在某个下标i(从 0 开始)满足0 < i < arr.length - 1且: arr[0] < arr[1] < ... < arr[i - 1] < arr[i] arr[i] > arr[i + 1] > ... > arr[arr.length - 1] 给你整数数组nums ,请你返回将nums变成山形状数组的最少...原创 2020-11-29 22:24:33 · 310 阅读 · 0 评论 -
leetcode 303. 区域和检索 - 数组不可变(C++)
给定一个整数数组 nums,求出数组从索引i到j(i≤j) 范围内元素的总和,包含i, j两点。示例:给定 nums = [-2, 0, 3, -5, 2, -1],求和函数为 sumRange()sumRange(0, 2) -> 1sumRange(2, 5) -> -1sumRange(0, 5) -> -3说明:你可以假设数组不可变。 会多次调用sumRange方法。C++class NumArray {public...原创 2020-07-26 23:49:57 · 190 阅读 · 0 评论 -
leetcode 把数字翻译成字符串(C++)
给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 “a” ,1 翻译成 “b”,……,11 翻译成 “l”,……,25 翻译成 “z”。一个数字可能有多个翻译。请编程实现一个函数,用来计算一个数字有多少种不同的翻译方法。示例 1:输入: 12258输出: 5解释: 12258有5种不同的翻译,分别是"bccfi", "bwfi", "bczi", "mcfi"和"mzi"提示:0 <= num < 231C++class Solution {..原创 2020-06-19 16:27:57 · 358 阅读 · 0 评论 -
leetcode 1458. 两个子序列的最大点积(C++)
给你两个数组nums1和nums2。请你返回nums1和nums2中两个长度相同的非空子序列的最大点积。数组的非空子序列是通过删除原数组中某些元素(可能一个也不删除)后剩余数字组成的序列,但不能改变数字间相对顺序。比方说,[2,3,5]是[1,2,3,4,5]的一个子序列而[1,5,3]不是。示例 1:输入:nums1 = [2,1,-2,5], nums2 = [3,0,-6]输出:18解释:从 nums1 中得到子序列 [2,-2] ,从 num...原创 2020-05-27 14:05:23 · 273 阅读 · 0 评论 -
牛客网——计算字符串的距离
Levenshtein距离,又称编辑距离,指的是两个字符串之间,由一个转换成另一个所需的最少编辑操作次数。许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。编辑距离的算法是首先由俄国科学家Levenshtein提出的,故又叫LevenshteinDistance。Ex:字符串A:abcdefg字符串B:abcdef通过增加或是删掉字符”g”的方式达到目的。这两种方案都需要一次操作。把这个操作所需要的次数定义为两个字符串的距离。要求:给定任意两个字符串,写...原创 2020-05-20 14:08:38 · 321 阅读 · 0 评论 -
leetcode 面试题 17.16. 按摩师(C++)
一个有名的按摩师会收到源源不断的预约请求,每个预约都可以选择接或不接。在每次预约服务之间要有休息时间,因此她不能接受相邻的预约。给定一个预约请求序列,替按摩师找到最优的预约集合(总预约时间最长),返回总的分钟数。注意:本题相对原题稍作改动示例 1:输入: [1,2,3,1]输出: 4解释: 选择 1 号预约和 3 号预约,总时长 = 1 + 3 = 4。示例 2:...原创 2020-03-24 23:23:23 · 624 阅读 · 0 评论 -
LeetCode 300. 最长上升子序列(C++、python)
给定一个无序的整数数组,找到其中最长上升子序列的长度。示例:输入: [10,9,2,5,3,7,101,18]输出: 4 解释: 最长的上升子序列是[2,3,7,101],它的长度是 4。说明:可能会有多种最长上升子序列的组合,你只需要输出对应的长度即可。 你算法的时间复杂度应该为O(n2) 。C++class Solution {public: in...原创 2019-02-18 19:38:34 · 302 阅读 · 0 评论 -
leetcode 309. 最佳买卖股票时机含冷冻期(C++)
给定一个整数数组,其中第i个元素代表了第i天的股票价格 。设计一个算法计算出最大利润。在满足以下约束条件下,你可以尽可能地完成更多的交易(多次买卖一支股票):你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。 卖出股票后,你无法在第二天买入股票 (即冷冻期为 1 天)。示例:输入: [1,2,3,0,2]输出: 3 解释: 对应的交易状态为: [买入, ...原创 2020-02-11 17:31:54 · 170 阅读 · 0 评论 -
LeetCode 714. 买卖股票的最佳时机含手续费(C++)
给定一个整数数组prices,其中第i个元素代表了第i天的股票价格 ;非负整数fee代表了交易股票的手续费用。你可以无限次地完成交易,但是你每次交易都需要付手续费。如果你已经购买了一个股票,在卖出它之前你就不能再继续购买股票了。返回获得利润的最大值。示例 1:输入: prices = [1, 3, 2, 8, 4, 9], fee = 2输出: 8解释: 能够达...原创 2019-02-06 14:58:59 · 580 阅读 · 0 评论 -
leetcode 1289. 下降路径最小和 II(C++)
给你一个整数方阵arr,定义「非零偏移下降路径」为:从arr数组中的每一行选择一个数字,且按顺序选出来的数字中,相邻数字不在原数组的同一列。请你返回非零偏移下降路径数字和的最小值。示例 1:输入:arr = [[1,2,3],[4,5,6],[7,8,9]]输出:13解释:所有非零偏移下降路径包括:[1,5,9], [1,5,7], [1,6,7], [1,6,...原创 2019-12-14 23:09:38 · 290 阅读 · 0 评论 -
leetcode 1277. 统计全为 1 的正方形子矩阵(C++)
给你一个m * n的矩阵,矩阵中的元素不是0就是1,请你统计并返回其中完全由1组成的正方形子矩阵的个数。示例 1:输入:matrix =[ [0,1,1,1], [1,1,1,1], [0,1,1,1]]输出:15解释: 边长为 1 的正方形有 10 个。边长为 2 的正方形有 4 个。边长为 3 的正方形有 1 个。正方形的总数 = ...原创 2019-12-01 11:48:52 · 798 阅读 · 0 评论 -
leetcode 1269. 停在原地的方案数(C++)
有一个长度为arrLen的数组,开始有一个指针在索引0处。每一步操作中,你可以将指针向左或向右移动 1 步,或者停在原地(指针不能被移动到数组范围外)。给你两个整数steps和arrLen,请你计算并返回:在恰好执行steps次操作以后,指针仍然指向索引0处的方案数。由于答案可能会很大,请返回方案数模10^9 + 7后的结果。示例 1:输入...原创 2019-11-24 15:21:43 · 283 阅读 · 0 评论 -
leetcode 1216. 验证回文字符串 III(C++)
给出一个字符串s和一个整数k,请你帮忙判断这个字符串是不是一个「K 回文」。所谓「K 回文」:如果可以通过从字符串中删去最多k个字符将其转换为回文,那么这个字符串就是一个「K 回文」。示例:输入:s = "abcdeca", k = 2输出:true解释:删除字符 “b” 和 “e”。提示:1 <= s.length <= 1000 ...原创 2019-10-06 00:47:40 · 543 阅读 · 0 评论 -
LeetCode 740. 删除与获得点数(C++、python)
给定一个整数数组nums,你可以对它进行一些操作。每次操作中,选择任意一个nums[i],删除它并获得nums[i]的点数。之后,你必须删除每个等于nums[i] - 1或nums[i] + 1的元素。开始你拥有 0 个点数。返回你能通过这些操作获得的最大点数。示例 1:输入: nums = [3, 4, 2]输出: 6解释: 删除 4 来获得 4 个点...原创 2019-03-07 19:17:33 · 287 阅读 · 0 评论 -
LeetCode 983. 最低票价(C++、python)
在一个火车旅行很受欢迎的国度,你提前一年计划了一些火车旅行。在接下来的一年里,你要旅行的日子将以一个名为days的数组给出。每一项是一个从1到365的整数。火车票有三种不同的销售方式:一张为期一天的通行证售价为costs[0]美元; 一张为期七天的通行证售价为costs[1]美元; 一张为期三十天的通行证售价为costs[2]美元。通行证允许数天无限制的旅行。...原创 2019-03-03 13:53:06 · 545 阅读 · 0 评论