
leetcode
CJ_Geek
这个作者很懒,什么都没留下…
展开
-
LeetCode——反转数字
题目:给定一个 32 位有符号整数,将整数中的数字进行反转。 示例 1: 输入: 123 输出: 321示例 2: 输入: -123 输出: -321示例 3: 输入: 120 输出: 21假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−2^31, 2^31 − 1]。根据这个假设,如果反转后的整数溢出,则返回 0。 public int rev...原创 2018-05-04 10:17:47 · 4927 阅读 · 0 评论 -
LeetCode——深度优先搜索应用(组合总数3)
找出所有相加之和为 n 的 k 个数的组合。组合中只允许含有1 - 9的正整数,并且每种组合中不存在重复的数字。说明: 所有数字都是正整数。 解集不能包含重复的组合。 示例 1: 输入: k = 3, n = 7 输出: [[1,2,4]] 示例 2:输入: k = 3, n = 9 输出: [[1,2,6], [1,3,5], [2,3,4]]private List...原创 2018-05-27 20:23:06 · 730 阅读 · 0 评论 -
LeetCode——深度优先搜索应用(子集1 、2)
1、给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。 说明:解集不能包含重复的子集。 输入: nums = [1,2,3] 输出: [ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], [] ]private List<List<Integer>&...原创 2018-05-27 19:29:20 · 1814 阅读 · 0 评论 -
LeetCode——深度优先搜索框架(排列、组合问题应用)
全排列问题 给定一个没有重复数字的序列,返回其所有可能的全排列。输入: [1,2,3] 输出: [ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1] ]private List&amp;amp;amp;lt;List&amp;amp;amp;lt;Integer&amp;amp;amp;gt;&amp;amp;amp;gt; ans =原创 2018-05-26 21:51:23 · 640 阅读 · 0 评论 -
LeetCode——快速幂
快速幂 例如:5的5次方可以写成如下 (5个5相乘)5 * 5 * 5 * 5 * 5 = 25 * 25 * 5 = 5^2 * 5^2 * 5 (4个5相乘)5 * 5 * 5 * 5 = 25 * 25 = 5^2 * 5^2 (n个5相乘)5 ^ (n/2) * 5 ^ (n/2) * 5 (n为奇数) 5 ^ (n/2) * 5 ...原创 2018-05-26 15:59:26 · 876 阅读 · 0 评论 -
LeetCode——NimGame
您和您的朋友,两个人一起玩 Nim游戏:桌子上有一堆石头,每次你们轮流拿掉 1 到 3 块石头。 拿掉最后一块石头的人就是胜利者。由您来开局。你们两个都是聪明人,相信都有最佳的游戏策略。 请编写一个函数,来判断您是否可以在给定的石头数量的情况下赢得游戏。比方说,如果堆中有4块石头,那么你永远不会赢得比赛:无论你拿走的是 1块,2块 还是 3块 石头,最后一块石头总是会被你的朋友拿走。解...原创 2018-05-07 21:39:43 · 166 阅读 · 0 评论 -
LeetCode——缺失数字missingNumber
给出一个包含 0, 1, 2, …, n 中 n 个数的序列,找出 0 .. n 中没有出现在序列中的那个数。案例 1 输入: [3,0,1] 输出: 2案例 2 输入: [9,6,4,2,3,5,7,0,1] 输出: 8求解思路:使用异或运算符 相同为0 不同为1. 让给定的数字与索引进行异或操作。异或的结果就是缺失的数与给定数中最大数(给定数组的长度)异或的结果。所以最后返...原创 2018-05-07 16:51:34 · 300 阅读 · 0 评论 -
LeetCode——各位相加
给一个非负整数 num,反复添加所有的数字,直到结果只有一个数字。 例如: 设定 num = 38,过程就像: 3 + 8 = 11, 1 + 1 = 2。 由于 2 只有1个数字,所以返回它。进阶: 你可以不用任何的循环或者递归算法,在 O(1) 的时间内解决这个问题么?求解思路: ab = a * 10 + b ab % 9 = (a*9 + a + b) % 9 = (a ...原创 2018-05-07 15:35:34 · 773 阅读 · 0 评论 -
LeetCode——阶乘后零的个数
给定一个整数 n,返回 n! 结果尾数中零的数量。 示例 1: 输入: 3 输出: 0 解释: 3! = 6, 尾数中没有零示例 2: 输入: 5 输出: 1 解释: 5! = 120, 尾数中有 1 个零求解思路: n的阶乘 = a * 10 ^ k = a * 5 ^ k * 2 ^ k 例如: 3! = 3 * 2 * 1 = 6 = 6 * 10 ^ 0 =6 ...原创 2018-05-07 14:01:13 · 914 阅读 · 0 评论 -
LeetCode——有序矩阵中第K小的元素
给定一个 n x n 矩阵,其中每行和每列元素均按升序排序,找到矩阵中第k小的元素。 请注意,它是排序后的第k小元素,而不是第k个元素。示例: matrix = [ [ 1, 5, 9], [10, 11, 13], [12, 13, 15] ], k = 8,返回 13。public boolean guess(int[][] matrix, in...原创 2018-05-19 21:35:07 · 2303 阅读 · 0 评论 -
LeetCode——分割数组的最大值(使用二分搜索框架)
给定一个非负整数数组和一个整数 m,你需要将这个数组分成 m 个非空的连续子数组。设计一个算法使得这 m 个子数组各自和的最大值最小。注意: 数组长度 n 满足以下条件:1 ≤ n ≤ 1000 1 ≤ m ≤ min(50, n)输入: nums = [7,2,5,10,8] m = 2输出: 18解释: 一共有四种方法将nums分割为2个子数组。 其中最好的方...原创 2018-05-13 19:58:50 · 1885 阅读 · 1 评论 -
LeetCode——x的平方根(使用二分法)
1、二分搜索的精髓: (1)单调性和计算内容重复 (2)求答案的问题改成猜答案 2、实现 int sqrt(int x) 函数。 计算并返回 x 的平方根,其中 x 是非负整数。 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。 这道题为什么可以使用二分法??? 解释:首先求x的平方根,即y^2 = x;即求y的值,而该函数具有当调用性...原创 2018-05-13 19:51:34 · 2514 阅读 · 2 评论 -
LeetCode——判断一个int数是否是2(或3 或4)的幂
给定一个整数,判断该数是否是2(或3 或4)的幂次 /** * 判断一个数是否是2的幂次 * 2的幂次的数规律 * 10 * 100 * 1000 * 只有一个1 * (n & (n-1)) 可以去掉二进制中最后以一个1 * @param n * @return */ ...原创 2018-05-04 16:14:35 · 396 阅读 · 0 评论 -
LeetCode——字符串转数字
public int myAtoi(String str) { long ans = 0; boolean flag = false; // 先去掉前后空格 str = str.trim(); int pos = 0; if (pos &lt; str.length() &amp;&amp; str....原创 2018-05-04 14:47:33 · 1159 阅读 · 0 评论 -
LeetCode——最长上升子序列(LIS)
给定一个无序的整数数组,找到其中最长上升子序列的长度。 示例:输入: [10,9,2,5,3,7,101,18] 输出: 4 解释: 最长的上升子序列是 [2,3,7,101],它的长度是 4。 说明:可能会有多种最长上升子序列的组合,你只需要输出对应的长度即可。 你算法的时间复杂度应该为 O(n2) 。int[] f = new int[10000]; int...原创 2018-07-03 13:45:51 · 1567 阅读 · 0 评论