20200907:力扣203周周赛题解记录
力扣203周周赛题解
题目一:
1.圆形赛道上经过次数最多的扇区
示例
解题思路与代码实现
本题的思路为优化整个起点与终点,理清关系,起点到终点的过程中,分为起点小于终点,起点大于终点,起点等于终点,分为三种情况,中间重复的部分的次数都是相同的。注意起点大于终点的情况就可以了。具体见代码。简单的题型用python更加简单,复杂的题型用Java和cpp更加清晰易懂。
class Solution:def mostVisited(self, n: int, rounds: List[int]) -> List[int]:start,end = rounds[0],rounds[-1]# 三种情况依次来写即可if start < end :return list(range(start,end+1));elif start == end :return list(range(start,start+1))else :return list(range(1,end+1)) + list(range(start,n+1))
题目二:
2.你可以获得的最大硬币数目
示例
解题思路与代码实现
纯排序题,拍完序按照顺序进行取值即可
python实现:
class Solution:def maxCoins(self, piles: List[int]) -> int:# python提供的更加简洁的表达格式,注意与matlab中区间及给定步长使用的区分return sum(sorted(piles)[len(piles) // 3::2])
不太熟悉python的同学看cpp代码实现:
class Solution {
public:int maxCoins(vector<int>& piles) {int ans = 0;sort(piles.begin(),piles.end());int len = piles.size();for(int i = len / 3; i < len; i = i + 2){ans += piles[i];}return ans;}
};
题目三:
3.查找大小为 M 的最新分组
示例
解题思路与代码实现
注意理解题意,并进行分段处理即可,分为三种情况,插入之后新增一个段长为1的段,或者原有段长数量减一,原有段长加一段增加一,或者原有两个段减一,新增一个大段。分类来写即可。
class Solution {public int findLatestStep(int[] arr, int m) {int[] link = new int[arr.length + 2];int cnt = 0;int res = -1;for (int i = 0; i < arr.length; i++) {int x = arr[i];int l = link[x - 1] != 0 ? link[x - 1] : x;int r = link[x + 1] != 0 ? link[x + 1] : x;if (x - l == m) {cnt--;}if (r - x == m) {cnt--;}if (r - l + 1 == m) {cnt++;}if (cnt > 0) {res = i + 1;}link[l] = r;link[r] = l;}return res;}
}
题目四:
4.石子游戏 V
示例
解题思路与代码实现
前缀和以及动态规划的进阶题目,石子游戏的前面几道题理解到位的话本题应该问题不大,注意状态转移方程的给定。
class Solution {public int stoneGameV(int[] stoneValue) {int N = stoneValue.length;int[][] dp = new int[N][N];// 前缀和优化int[] preSum= new int[N];preSum[0]=stoneValue[0];for (int i = 1; i < stoneValue.length; i++) {preSum[i] =preSum[i-1]+stoneValue[i];}// dp即可for (int len = 2; len <=N ; len++) {for (int i = 0; i+len-1 <N ; i++) {int j = i+len-1;for (int m = i; m <=j ; m++) {if (i>m || m+1>j){continue;}int l = dp[i][m]; int r = dp[m+1][j]; int ls = preSum[m] - (i>0? preSum[i-1]:0); // i ~ m 分数int rs = preSum[j]- preSum[m]; //m+1 ~ j 分数//左右区间分数相同,取大的if (ls == rs){int score = Math.max(l,r)+ls;dp[i][j] = Math.max(dp[i][j],score);}// 左右不等,取小的else{if (ls>rs){dp[i][j] = Math.max(dp[i][j],r+rs);}else{dp[i][j] = Math.max(dp[i][j],l+ls);}}}}}return dp[0][N-1];}
}
20200907:力扣203周周赛题解记录相关推荐
- 20201007:力扣209周周赛题解记录(上)
力扣209周周赛题解记录(上) 题目 思路与算法 代码实现 复杂度分析 题目 特殊数组的特征值 奇偶树 思路与算法 第一题单纯的暴力就行,应该是可以用二分之类的改善复杂度,没必要赘述,直接上暴力遍历, ...
- 20200819:力扣202周周赛题解记录
力扣202周周赛题解记录 题目一:[存在连续三个奇数的数组](https://leetcode-cn.com/problems/three-consecutive-odds/) 代码实现 题目二:[使 ...
- 20200815:力扣201周周赛题解记录下
力扣201周周赛题解记录下 题目 思路与算法 代码实现 题目 和为目标值的最大数目不重叠非空子数组数目 1547. 切棍子的最小成本 在这里插入图片描述 思路与算法 第3题还是一个简单的模拟,用set ...
- 20200814:力扣201周周赛题解记录上
力扣201周周赛题解记录上 题目 思路与算法 代码实现 写在最后 题目 整理字符串 找出第 N 个二进制字符串中的第 K 位 思路与算法 第一题这种类似消消乐的东西都是直接用栈来实现的,注意代码细节 ...
- 20200729:力扣199周周赛题解(下)
力扣199周周赛题解(下) 题目三:好叶子节点对的数量 给你二叉树的根节点 root 和一个整数 distance . 如果二叉树中两个叶节点之间的 最短路径长度 小于或者等于 distance ,那 ...
- 20201219:力扣219周周赛题解
力扣219周周赛题解 题目 思路与算法 代码实现 复杂度分析 题目 比赛中的配对次数 十-二进制数的最少数目 石子游戏 VII 堆叠长方体的最大高度 思路与算法 比赛中的配对次数 两两比赛,淘汰剩一支 ...
- 20201008:力扣209周周赛题解(下)
力扣209周周赛题解(下) 题目 思路与算法 代码实现 写在最后 题目 可见点的最大数目 使整数变为 0 的最少操作次数 思路与算法 第一题注意添加角度时atan2的范围是正负π,因此注意差值可能超出 ...
- (补)20200911:力扣204周周赛题解下
力扣204周周赛题解下 题目 思路与算法 代码实现 写在最后 题目 3.1568. 使陆地分离的最少天数 思路与算法 本周周赛第三题勉强可以看看,第四题超出我目前的水平,跳过.第三题是一个典型的dfs ...
- 20200910:力扣204周周赛题解上(Java/Python/Cpp)
力扣204周周赛题解上 题目 思路与算法 代码实现 写在最后 题目 1.1566. 重复至少 K 次且长度为 M 的模式 2.1567. 乘积为正数的最长子数组长度 思路与算法 热身题不要求算法技巧, ...
最新文章
- 关于node.js的误会
- LeetCode 52. N皇后 II
- 北京大学孙俊教授课题组深度视频研究室招收2021级博士生
- mysql 事务 注意 优化_MySQL入门详解——事务、锁、优化
- Thinkphp ajax分页
- 解决git pull 报错insufficient permission for adding an object to repository database .git/objects
- android phone win10下载,微软Your Phone新功能: 可在Win 10 PC 上运行 Android 应用程序...
- html 动画过度转换的用法,css(动画,过渡,转换)
- 20191111每日一句
- Ubuntu Linux DNS服务器 BIND9配置文件命令介绍
- 前馈神经网络初步了解
- MATLAB app designer/GUI 学习笔记(一)
- 设计模式 -- 状态模式
- 5G NR无线空口关键技术专题培训
- Linux c使用gumbo库解析页面表单信息(二)
- ABAP新建session会话的函数_SAP刘梦_新浪博客
- Master in Vocab -- Day Four
- 盘点:35 个 Java 代码优化魔鬼细节
- 针对Chrome浏览器无法使用Flash的问题
- 网络上流行的关于“剩男/剩女”的许多调侃
热门文章
- 小辣椒手机创始人王晓雁加入小米;手机 QQ 可显示对方实时电量;Git Extensions 3.3.1 发布 | 极客头条...
- 开源操作系统年度盛会最新日程曝光,邀您一同开启烧脑模式!
- 程序员的代码写的再牛也没有马伊琍文章的分手语牛!
- IT 从业者要如何在国企「活」下去?
- 如何使用 Lucene 做网站高亮搜索功能?
- iOS 12 真的能让旧款 iPhone 速度飞起吗?
- 黄渤《一出好戏》首日票房 1.5 亿,口碑碾压《爱情公寓》凭的是什么?
- 网易云音乐与腾讯闹掰;今日头条下架万条短视频;美团打车或将被吊证| CSDN 极客头条
- 为什么量子计算会对我们产生威胁?
- 那些坑爹的老代码,究竟改还是不改?!