冲冲冲
掉头发
lankerens
日常抄代码并给大佬点赞
展开
-
LCP 18. 早餐组合(双指针)
LeetCode: LCP 18. 早餐组合将两个数组从小到大排序然后一个数组从小到大遍历,一个数组从大到小遍历( j-- )。当两个数组合符号条件时,那么从大到小的一方,j 到 0 之间的数都是符合条件的。( j - 0 + 1 )提交代码 public int breakfastNumber(int[] staple, int[] drinks, int x) { // 排序了 Arrays.sort(staple); Arrays原创 2020-09-19 22:37:44 · 324 阅读 · 0 评论 -
有效的括号
题意:给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。输入: "()[]{}"输出: true输入: "([)]"输出: false第一种、栈 Stack思路: 将括号的左部分压入栈中,匹到右半部分时比对 栈顶元素是否是对应的 左半部分,...原创 2020-01-05 12:55:20 · 132 阅读 · 0 评论 -
二进制中1的个数
题意: 输入一个整数, 输出在二进制中 1 的个数, 负数用补码来表示补码: 负数的正数 - 1 然后取反就是负数的补码了一、错误例子public class Solution { public int NumberOf1(int n) { int ans = 0; while(n != 0) { int temp = n...原创 2020-01-04 23:18:55 · 155 阅读 · 0 评论 -
距离顺序排列矩阵单元格
理解题目花了半天时间… public int[][] allCellsDistOrder(int R, int C, int r0, int c0) { // 存储距离 int [] dis = new int[R*C]; int [][] res = new int[R*C][2]; // 存储结果 int [][] indexs = new int[R][C]; // 下标 int index =.原创 2020-07-25 15:42:04 · 145 阅读 · 0 评论 -
出现一次的数字
题意: 在一个非空数组中,找出只出现了一次的数字 ( 其他的均出现了两次 )第一种、 map class Solution { public int singleNumber(int[] nums) { Map<Integer, Integer> map = new HashMap<Integer, Integer>(); ...原创 2020-01-15 10:34:05 · 136 阅读 · 0 评论 -
移动石子直至连续
题意: 三枚石子放在数轴上,分别为 a, b, c每轮中,设数轴上的位置分别为 x, y ,z ( x < y < z)每次可以拿起 x 或者 z 移到 x < k < z 范围内的一个整数位置k != y当无法移动时,即这些位置连续时,结束游戏示例:输入:a = 1, b = 2, c = 5输出:[1, 2]解释:将石子从 5 移动到 4 再...原创 2020-01-12 22:16:41 · 251 阅读 · 0 评论 -
IV转换成数字
罗马数字包含以下七种字符: I, V, X, L,C,D 和 M题意: 给定一个罗马数字,将其转换成整数。输入确保在 1 到 3999 的范围内。例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V + II 。这个特殊的规则只适用于以下六种情况:I 可以放在 V (5) 和 X (...原创 2020-01-12 20:05:25 · 709 阅读 · 0 评论 -
最长公共前缀
题意:查找字符串数组中的最长公共前缀如果不存在, 返回 ""第一种、 没脑子xxx写法思路: 将字符串数组遍历,逐个字符比较,比较出有一个字符串数组中的字母不同,结束比较,输出前缀.class Solution { public String longestCommonPrefix(String[] strs) { int...原创 2020-01-11 11:08:51 · 232 阅读 · 0 评论 -
整数反转
在限定 int 范围内,将整数反转溢出的返回 0-2345 --> -543212 --> 21第一种、是不是没救了思路: 将 int 整数通过 String 转换,溢出捕获. class Solution { public int reverse(int x) { long nums = 0; int temp ...原创 2020-01-04 13:18:26 · 215 阅读 · 0 评论 -
两数之和
题意:在一个整数数组中找出两个整数,之和为 target不允许重复利用数组中的元素,返回这两个整数的数组下标第一种、暴力法直接两次 for 循环解决,时间复杂度为 O(n^2)空间复杂度: O(1)第二种、哈希表我们需要一种更有效的找出数组中是否存在该元素,并且找出它的索引保持数组中的元素与其索引的对应关系最好的方法 -- 哈希表 public int[] two...原创 2020-01-03 11:39:54 · 223 阅读 · 0 评论 -
三十六进制加法
三十六进制加法:由 数字 + 小写字母 组成0-9 表示 0-9a-z 表示 10-35第一种、直接通过36进制将两个数相加思路: 通过一个数组下标相加是否超出36 判断是否进位public class Main { public static Character[] nums = {'0','1','2','3','4','5','6','7','8','9','a',...原创 2020-01-01 17:10:20 · 2806 阅读 · 0 评论 -
连续整数求和
给定一个正整数N,试求有多少组连续正整数满足所有数字之和为N? (1 <= N <= 10 ^ 9)样例:in: 5out: 2in: 15out: 4解释:5 = 5 = 2 + 3,共有两组连续整数([5],[2,3])求和后为 5。一、思路因为是找连续的正整数序列,因此我们可以这样先定义一个start=1,end=2,然后类似滑动窗口的概念,我们通过让增...原创 2019-11-27 21:39:25 · 2641 阅读 · 0 评论 -
将一组数排列成最小的数
输入一个正整数数组,将它们连接起来排成一个数,输出能排出的所有数字中最小的一个。样例in: 32,123out: 12332in: 63,92,12out: 126392一、思路先将输入的字符串按 "," 拆分成字符串数组,然后通过 Collections 工具类 自定义排序 每次比较返回小的那个,从小到大排序(局部 --> 整体)按顺序输出即可二、代码imp...原创 2019-11-27 11:36:55 · 459 阅读 · 0 评论 -
ccf_小明种苹果
T201909-2 : http://118.190.20.162/view.page?gpid=T93测试样例54 10 0 9 0 4 10 -2 7 02 10 04 10 -3 5 04 10 -1 8 044 74 -7 -12 -55 73 -8 -6 59 -45 76 -5 -10 60 -25 80 -6 -15 59 0思路73 -8 -6 ...原创 2019-11-20 12:11:32 · 348 阅读 · 0 评论 -
表达式求值
1+1000000003*14计算的结果为1000000004,输出后4位,即4。1+1234567890*17891计算的结果为1234567891,输出后4位,即7891。1. 思路先将字符串中的数都分离出来,存进栈里。然后遇到操作符时再将数取出利用 BigInteger 操作大数.2. 代码public class Main { public static...原创 2019-11-09 18:11:56 · 122 阅读 · 0 评论 -
二分查找___求第一天最多能吃多少块
题意:n 天内吃 m 块 饼干,每天吃的饼干数量不少于前一天吃的一半,又不能在 第 n 天 之前吃完,求第一天最多能吃多少块输入 n m 天数 和 饼干数量3 741. 思路:二分查找的变形,区间为 [1,m ] 块饼干,在 n 天中求和2.代码import java.util.Scanner; public class Main { public int ...原创 2019-11-09 13:31:26 · 209 阅读 · 0 评论