![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
刷题
liuzhonghaolpp
这个作者很懒,什么都没留下…
展开
-
LeetCode 1406. 石子游戏
1406. 石子游戏题目Alice 和 Bob 用几堆石子在做游戏。几堆石子排成一行,每堆石子都对应一个得分,由数组 stoneValue 给出。Alice 和 Bob 轮流取石子,Alice 总是先开始。在每个玩家的回合中,该玩家可以拿走剩下石子中的的前 1、2 或 3 堆石子 。比赛一直持续到所有石头都被拿走。每个玩家的最终得分为他所拿到的每堆石子的对应得分之和。每个玩家的初始分数都是 0 。比赛的目标是决出最高分,得分最高的选手将会赢得比赛,比赛也可能会出现平局。假设 Alice 和 Bo原创 2020-08-02 18:11:41 · 217 阅读 · 0 评论 -
LeetCode每日一题114 二叉树展开为链表
LeetCode 114. 二叉树展开为链表题目给定一个二叉树,原地将他展开为一个链表(单向,右指针)。如图:方法1:前序遍历递归class Solution { TreeNode pre; //用来保存当前访问的节点的前驱节点 public void flatten(TreeNode root) { if(root == null){ return; } Preorder(root); }转载 2020-08-02 13:32:35 · 175 阅读 · 0 评论 -
LeetCode523 连续的子数组和
连续的子数组的和题目给定一个包含 非负数 的数组和一个目标 整数 k,编写一个函数来判断该数组是否含有连续的子数组,其大小至少为 2,且总和为 k 的倍数,即总和为 n*k,其中 n 也是一个整数。思路利用前缀和,首先遍历一遍数组,找到每个位置的前缀和保存到sum[i]中,sum[i]=nums[0]+…+nums[i]。然后遍历前缀和数组,若有sum[i]-sum[j] = nums[j+1]+…+nums[i]等于目标值的倍数,则返回true,这种方法的复杂度是O(n^2)。优化使用mod原创 2020-07-31 13:55:02 · 120 阅读 · 0 评论 -
LeetCode每日一题 面试题08.03. 魔术索引
魔术索引题目魔术索引。 在数组A[0…n-1]中,有所谓的魔术索引,满足条件A[i] = i。给定一个有序整数数组,编写一种方法找出魔术索引,若有的话,在数组A中找出一个魔术索引,如果没有,则返回-1。若有多个魔术索引,返回索引值最小的一个。**注:**可以有重复数字思路最简单的思路是一次遍历,从左开始找到最小的i使得i=A[i]。但这并不是本体考察的重点,在没有重复数字的情况下,本题是可以使用二分查找来做的:当A[i]=i时,做小的满足A[i]=i的索引只有可能出现在0,…,i-1,我们只需原创 2020-07-31 12:33:29 · 138 阅读 · 0 评论 -
Leetcode464. 我能赢吗
Leetcode464. 我能赢吗博弈问题递归+备忘录+压缩状态题目在 “100 game” 这个游戏中,两名玩家轮流选择从 1 到 10 的任意整数,累计整数和,先使得累计整数和达到 100 的玩家,即为胜者。如果我们将游戏规则改为 “玩家不能重复使用整数” 呢?例如,两个玩家可以轮流从公共整数池中抽取从 1 到 15 的整数(不放回),直到累计整数和 >= 100。给定一个整数 maxChoosableInteger (整数池中可选择的最大数)和另一个整数 desiredTotal(原创 2020-07-30 21:04:49 · 206 阅读 · 0 评论