有趣的题目
dezhonger
这个作者很懒,什么都没留下…
展开
-
Leetcode 1040
题意:给了一行石头的坐标,每次可以把一个端点(最左/最右)的石头移动到一个非端点的位置,求最后这n个石头连续的最少和最多移动次数看代码吧,注释还是比较详细的。 public int[] numMovesStonesII(int[] stones) { Arrays.sort(stones); int n = stones.length...原创 2020-02-15 22:09:11 · 349 阅读 · 0 评论 -
Leetcode 649
R和D轮着投票,每一次每个人可以选择一个对方的人让他没有投票权,都选最优策略的时候谁能胜利稍微思考可以发现:RD R winDR D win也就是说下标小的时候占优势我开始以为谁多谁就胜利,其实不是的,比如DDRRR,这个是时候Dwin,因为第一轮过后 会变为什么呢?DDR?其实不是的,可以这样决策,第一个D和第二个D分别让第三个R和第四个R失去权力,然后最...原创 2020-02-08 22:30:49 · 205 阅读 · 0 评论 -
Leetcode808
有两个瓶子A和B分别有N毫升水,每次可以进行下面四种操作之一Serve100 ml of soup A and 0 ml of soup B Serve75 ml of soup A and 25ml of soup B Serve 50 ml of soup A and 50 ml of soup B Serve 25ml of soup A and 75ml of so...原创 2020-02-08 20:57:08 · 163 阅读 · 0 评论 -
Leetcode 398 蓄水池抽样算法
https://www.cnblogs.com/MrLJC/p/4113276.html原创 2020-01-29 03:41:17 · 129 阅读 · 0 评论 -
Leetcode858
一个正方形,左下角会放出射线,其他三个角分别有一个接收器,给出发射的角度的正切值,问这个射线最终会被几号接收器接受?思路:初看此题,没有比较好的思路,暴力计算射线也显得非常麻烦,不妨我们把射线反射转换一下,变为扩展这个正方形。图我就不画了,可以参见这里https://www.cnblogs.com/grandyang/p/10646040.html这里的解释我开始...原创 2020-01-29 01:27:58 · 117 阅读 · 0 评论 -
Leetcode838
一行多米诺骨牌,给定每个牌往左倒或者往右倒,求最后每个骨牌的倒下方向。思路:注意到一个骨牌的最终方向取决于它左边和它右边骨牌的方向,具体而言,以下情况:如果两边都是同一方向,那么中间的骨牌也会倒向这个方向L...L: LLLLLR...R: RRRRR如果是在L和R之间,那么中间的骨牌不会受到外力,依然保持平航L...R: 结果为L...R, 中间三个是平...原创 2020-01-29 00:46:18 · 209 阅读 · 0 评论 -
Leetcode1145
给一颗二叉树,a选x节点染为红色,问b是否可以选一个节点y染成蓝色,使得按照一定的规则下b win。规则:每个选手每次可以选择一个已染色的邻居节点染成自己的颜色,如果没有这样的节点,就跳过这一回合。最后谁的节点多,谁赢。 节点数为奇数。sol:给定了x节点,那么为了最大化b能染得节点数,我们只需要考虑三个节点,x的父节点和x的两个子节点。 int p, l, ...原创 2020-01-25 19:59:15 · 161 阅读 · 0 评论 -
Leetcode678
给定一个包含 '(', ')', '*'三种字符的字符串,其中*可以代替'('、')' 或者 空 三种字符,问是否可以替换后使得字符串是括号配对的。比如: (*)我们把*替换为空,return true(*))我们把*替换为'(',就是匹配的想法:我的想法是就像从左到右枚举,维护三个变量分别是 l, r, x, 代表三个字符的数量,以及一个栈,维护栈的原因是因为,...原创 2020-01-25 17:15:19 · 262 阅读 · 0 评论 -
Leetcode 775
A: 数组的逆序数B: 数组相邻两个数是否是逆序的判断A是否和B相等注意到:B一定是A,但是A不一定是B然后就是下面的代码。。。 public boolean isIdealPermutation(int[] A) { for (int i = 0; i < A.length; i++) { if (Mat...原创 2020-01-11 23:23:57 · 87 阅读 · 0 评论 -
Leetcode1252
一个n行m列的矩阵,初始全都是0,每次都可以操作一行或者一列自增每个数,求最后奇数的个数这是个easy的题目,可以做到O(m+n)的空间复杂度和时间复杂度题解:https://leetcode.com/problems/cells-with-odd-values-in-a-matrix/discuss/426647/C%2B%2B-0ms-9.2MB.-Faster-tha...原创 2019-12-29 22:25:46 · 156 阅读 · 0 评论 -
Leetcode932
构造一个1-N的排列,满足不存在For everyi < j, there isnokwithi < k < jsuch thatA[k] * 2 = A[i] + A[j].一个很有趣的构造题目,https://www.dreamwings.cn/leetcode932/5327.html这里讲的很清楚了 public int[] b...原创 2019-12-20 22:19:27 · 121 阅读 · 0 评论 -
Leetcode1248
有多少个连续子数组的奇数个数为k可以记录下每个奇数左边的偶数的数的个数,比如00010010000, k =2那么选择了1001后,左边可以扩展3个0,右边可以扩展4个0,右边可以理解为下一个奇数的左边,这个在实现上会比较方便。根据乘法原理,贡献的答案为(3+1)(4+1) public int numberOfSubarrays(int[] nums, int ...原创 2019-12-18 01:01:50 · 139 阅读 · 0 评论 -
Leetcode519
大概意思就是让你在接下来的M次,随机出[0, n*m)的一个整数,不能重复。尽可能少地调用random()方法。这个题目的解答思路非常巧妙:每次随机出一个数后,就把这个数映射到一个还没用随机出来的数,接下来如果又随机到这个数,就用它映射到的那个数,同时把这个数映射到的数再改为一个没用到的数(因为之前映射到的数这次用过了)。class Solution { int size...原创 2019-12-03 22:58:09 · 63 阅读 · 0 评论