Leetcode
文章平均质量分 86
肆呀
这个作者很懒,什么都没留下…
展开
-
dp / 算术几何均值不等式 求 正整数拆分后的最大乘积
Leetcode 剑指 Offer 14- I. 剪绳子题目1、dp做法2、数学做法:算术几何均值不等式 题目 给你一根长度为 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。 【示例 1】 输入: 2 输出: 1 解释: 2 = 1 + 1, 1 × 1原创 2021-01-16 02:04:12 · 269 阅读 · 0 评论 -
Leetcode 453. 最小移动次数使数组元素相等 (“相对大小”)
Leetcode 453. 最小移动次数使数组元素相等 【题意】 给定一个长度为 n 的非空整数数组,找到让数组所有元素相等的最小移动次数。每次移动将会使 n - 1 个元素增加 1。 【示例】 输入: [1,2,3] 输出: 3 【解释】 只需要3次移动(注意每次移动会增加两个元素的值):[1,2,3] => [2,3,3] => [3,4,3] => [4,4,4] 【解法一】O (n) /* 对于 1 2 4 6,从小的考虑起,先将 1 增加至和 2 一样,即 2 2 5原创 2020-12-06 14:05:57 · 192 阅读 · 0 评论 -
leetcode 36. 有效的数独 (将 9 * 9 数独划分成 9 宫格 )
leetcode 36. 有效的数独 判断一个 9x9 的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可。 数字 1-9 在每一行只能出现一次。 数字 1-9 在每一列只能出现一次。 数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。 上图是一个部分填充的有效的数独。 数独部分空格内已填入了数字,空白格用 ‘.’ 表示。 示例 1: 输入: [ [“5”,“3”,".",".",“7”,".",".",".","."], [“6”,".",".",“1”,“9”,“5”,原创 2020-11-23 22:27:54 · 615 阅读 · 0 评论 -
Leetcode 213. 打家劫舍 II (动态规划--理解pre和cur的意义)
打家劫舍 II 你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金。这个地方所有的房屋都围成一圈,这意味着第一个房屋和最后一个房屋是紧挨着的。同时,相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。 示例 1: 输入: [2,3,2] 输出: 3 解释: 你不能先偷窃 1 号房屋(金额 = 2),然后偷窃 3 号房屋(金额 = 2), 因为他们是相邻的.原创 2020-09-19 18:15:45 · 235 阅读 · 0 评论 -
Leetcode 169.多数元素(摩尔投票法)
Leetcode 169.多数元素 给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的,并且给定的数组总是存在多数元素。 示例 1: 输入: [3,2,3] 输出: 3 示例 2: 输入: [2,2,1,1,1,2,2] 输出: 2 【摩尔投票法】 //摩尔投票法 /* 因为必然有一个多数元素(数量>n/2),所以将nums数组看成是一个个人在投票,result是用于说明 当前是根据哪一个人(数组哪个元素)的选择来决定赞成原创 2020-08-17 00:41:35 · 156 阅读 · 0 评论 -
Leetcode 168. Excel表列名称(Java)(初试 “ 动态 “ 字符串)
Leetcode 168. Excel表列名称 给定一个正整数,返回它在 Excel 表中相对应的列名称。 例如, 1 -> A 2 -> B 3 -> C … 26 -> Z 27 -> AA 28 -> AB … 示例 1: 输入: 1 输出: “A” 示例 2: 输入: 28 输出: “AB” 示例 3: 输入: 701 输出: “ZY” /*类似于把10进制转换为26进制 但与普通进制转换不一样的是,不能直接把A当0,在%和/运算里面需将n-1 */ class原创 2020-08-16 22:05:40 · 179 阅读 · 0 评论 -
Leetcode 136. 只出现一次的数字(Java)(异或的特点)
Leetcode 136. 只出现一次的数字 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 说明: 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 示例 1: 输入: [2,2,1] 输出: 1 示例 2: 输入: [4,1,2,1,2] 输出: 4 先排序再遍历搜索 //先排序再遍历搜索 class Solution { public int singleNumber(int[] nums) { Array原创 2020-08-16 22:05:28 · 101 阅读 · 0 评论 -
Leetcode122 买卖股票的最佳时机 II(Java)(类似微分,以小求大)
Leetcode 122. 买卖股票的最佳时机 II 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。 注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。 示例 1: 输入: [7,1,5,3,6,4] 输出: 7 解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4 。 随后,在第 4 天(股票原创 2020-08-10 13:06:15 · 128 阅读 · 0 评论 -
Leetcode70 爬楼梯(Java)(节省递归时间)(斐波那契数列应用)
题目(Leetcode70题): 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数。 示例 1: 输入: 2 输出: 2 解释: 有两种方法可以爬到楼顶。 1 阶 + 1 阶 2 阶 示例 2: 输入: 3 输出: 3 解释: 有三种方法可以爬到楼顶。 1 阶 + 1 阶 + 1 阶 1 阶 + 2 阶 2 阶 + 1 阶 /** 用斐波那契数列更省内存和时间 比如说第6阶台阶,其实可以看成是在第4阶原创 2020-07-19 00:19:34 · 201 阅读 · 0 评论