比赛地址:
https://leetcode-cn.com/contest/weekly-contest-100
896. 单调数列
896. Monotonic Array
如果数组是单调递增或单调递减的,那么它是单调的。
如果对于所有 i <= j
,A[i] <= A[j]
,那么数组 A
是单调递增的。 如果对于所有 i <= j
,A[i]> = A[j]
,那么数组 A
是单调递减的。
当给定的数组 A
是单调数组时返回 true
,否则返回 false
。
示例 1:
输入:[1,2,2,3] 输出:true
示例 2:
输入:[6,5,4,4] 输出:true
示例 3:
输入:[1,3,2] 输出:false
示例 4:
输入:[1,2,4,5] 输出:true
示例 5:
输入:[1,1,1] 输出:true
提示:
1 <= A.length <= 50000
-100000 <= A[i] <= 100000
题解:循环两次分别判断是否递增或递减。
/** * @param {number[]} A * @return {boolean} */ var isMonotonic = function(A) { var n = A.length; var i; for (i = 1; i < n; i++) { if (A[i] < A[i - 1]) { break; } } if (i == n) { return true; } for (i = 1; i < n; i++) { if (A[i] > A[i - 1]) { break; } } if (i == n) { return true; } return false; };
897. 递增顺序查找树
897. Increasing Order Search Tree
给定一个二叉树,重新排列树,使树中的最小值现在是树的根结点,并且每个结点没有左子结点,只有一个右子结点。
示例 :
输入:[5,3,6,2,4,null,8,1,null,null,null,7,9] 5 / \ 3 6 / \ \ 2 4 8 / / \ 1 7 9 输出:[1,null,2,null,3,null,4,null,5,null,6,null,7,null,8,null,9] 1 \ 2 \ 3 \ 4 \ 5 \ 6 \ 7 \ 8 \ 9
提示:
- 给定树中的结点数介于 1 和 100 之间。
- 每个结点都有一个从 0 到 1000 范围内的唯一整数值。
题解:中序遍历依次生成新树。
/** * Definition for a binary tree node. * function TreeNode(val) { * this.val = val; * this.left = this.right = null; * } */ /** * @param {TreeNode} root * @return {TreeNode} */ var increasingBST = function(root) { var dfs = function(node) { if (!node) { return; } dfs(node.left); p.right = new TreeNode(node.val); p = p.right; dfs(node.right); } var head = new TreeNode(0); var p = head; dfs(root); return head.right; };
898. 子数组按位或操作
898. Bitwise ORs of Subarrays
我们有一个非负整数数组 A
。
对于每个(连续的)子数组 B = [A[i], A[i+1], ..., A[j]]
( i <= j
),我们对 B
中的每个元素进行按位或操作,获得结果 A[i] | A[i+1] | ... | A[j]
。
返回可能结果的数量。 (多次出现的结果在最终答案中仅计算一次。)
示例 1:
输入:[0] 输出:1 解释: 只有一个可能的结果 0 。
示例 2:
输入:[1,1,2] 输出:3 解释: 可能的子数组为 [1],[1],[2],[1, 1],[1, 2],[1, 1, 2]。 产生的结果为 1,1,2,1,3,3 。 有三个唯一值,所以答案是 3 。
示例 3:
输入:[1,2,4] 输出:6 解释: 可能的结果是 1,2,3,4,6,以及 7 。
提示:
1 <= A.length <= 50000
0 <= A[i] <= 10^9
题解:遍历A[i]时,用一个集合pre记录前面所有子数组的或操作的结果。
/** * @param {number[]} A * @return {number} */ var subarrayBitwiseORs = function(A) { var s = new Set(); var pre = new Set(); for (var i = 0; i < A.length; i++) { s.add(A[i]); var newPre = new Set(); newPre.add(A[i]); for (var p of pre) { var newNum = (p | A[i]) newPre.add(newNum); s.add(newNum); } pre = newPre; } return s.size; };
899. 有序队列
899. Orderly Queue
给出了一个由小写字母组成的字符串 S
。然后,我们可以进行任意次数的移动。
在每次移动中,我们选择前 K
个字母中的一个(从左侧开始),将其从原位置移除,并放置在字符串的末尾。
返回我们在任意次数的移动之后可以拥有的按字典顺序排列的最小字符串。
示例 1:
输入:S = "cba", K = 1 输出:"acb" 解释: 在第一步中,我们将第一个字符(“c”)移动到最后,获得字符串 “bac”。 在第二步中,我们将第一个字符(“b”)移动到最后,获得最终结果 “acb”。
示例 2:
输入:S = "baaca", K = 3 输出:"aaabc" 解释: 在第一步中,我们将第一个字符(“b”)移动到最后,获得字符串 “aacab”。 在第二步中,我们将第三个字符(“c”)移动到最后,获得最终结果 “aaabc”。
提示:
1 <= K <= S.length <= 1000
-
S
只由小写字母组成。
题解:一开始用队列进行广度遍历所有可能的变化字符串,超时了。然后打了个补丁:K>1时直接返回所有字母组合的最小字典序,AC了,感谢上帝。
/** * @param {string} S * @param {number} K * @return {string} */ var orderlyQueue = function(S, K) { if (K > 1) { var s = S.split(""); s.sort(); return s.join(""); } var sSet = new Set(); var q = [S]; while(q.length > 0) { var s = q.shift(); sSet.add(s); for (var i = 0; i < K; i++) { var sub = s.substring(0, i) + s.substring(i + 1) + s[i]; if (!sSet.has(sub)) { q.push(sub); } } } var arr = Array.from(sSet); arr.sort(); return arr[0]; };
相关推荐
周赛难度LeetCode 题解 一题目列表 细绳 # 标题 标签 困难 解决方案 描述 1 细绳 中等的 2 细绳 中等的 3 细绳 中等的 4 细绳 中等的 DP # 标题 标签 困难 解决方案 描述 1 DP 中等的 2 DP 中等的 3 DP 中等的 4 DP ...
leetcode周赛积分 leetcode 推荐 No. Problems Solutions Tag 32 DP, Stack 周赛 (weekly-content) No. Solutions Completion Date 2020.07.05 刷题记录 No. Problems Solutions Completion Date 329 2020.07.26 16 ...
leetcode周赛有原题吗 leetcode 题号 题目 难度 tag 两数之和 简单 两数相加 中等 无重复字符的最长子串 中等 : 最长回文子串 中等 字符串转换整数 (atoi) 中等 盛最多水的容器 中等 罗马数字转整数 简单 0014 最长...
leetcode 周赛难度力码 的代码参考。 当然,我也会每周更新一些关于这些问题的注释,但不是全部。 欢迎开 issue 讨论! 要求 Xcode C++ 11 问题 清单(链表) ID 标题 困难 解决方案 笔记 2 中等的 19 中等的 21 简单...
leetcode周赛153 LeetCode-Contest LeetCode 周赛题解 已完成比赛 周赛 比赛场次 【A】题 【B】题 【C】题 【D】题 1201 1202 1203 1207 1208 1209 1210 双周赛 比赛场次 【A】题 【B】题 【C】题 【D】题 1246 初始...
leetcode周赛排名没了 定个小目标:用Java、Python、Go、Rust、C++、js六种语言把leetcode刷一遍 为什么要创建此repo? 为了自己。leetcode上好的讲解数不胜数,大佬的解法巧妙绝伦,再写题解给别人看那就是班门弄斧...
周赛积分按 issue 记录 Leetcode 的流程 每周比赛 日期 11/10/2019 11/16/2019 11/17/2019 12/8/2019 12/15/2019 12/22/2019 数量 问题 等级 话题 日期 409 简单的 Hash Table 10/25/2019 290 简单的 Array Two ...
周赛难度每周-Leetcode-with-MS 业主:兰 时间:从 19.12.11 Week6 动态规划 指数 标题 解决方案 验收 困难 70 √ 45.6% 简单的 198 √ 41.5% 简单的 303 √ 40.8% 简单的 64 √ 49.7% 中等的 309 √ 45.2% 中等的 ...
leetcode 周赛奖品Lemaj - 提高编码技能和参加比赛的网站 Development on Lemaj has just started. Everything is in flux Lemaj 是什么? Lemaj立志成为一个学习编程的网站,它每周都会举办比赛,任何人都可以参加...
leetcode 周赛难度LeeCode-Study ======== 总结 Scala 每周练习(每周 5 个问题)。 参考 不。 标题 解决方案 困难 标签 地位 001 简单的 Mapping 完毕 002 中等的 LinkedList 完毕 003 中等的 Mapping 完毕 005 ...
周赛是LeetCode举办的一种定期比赛,参赛者在限定时间内解决一系列问题,并根据解题质量和速度获得分数。 描述 "leetcode周赛得分3" 很简洁,表明这是作者参加的第三次LeetCode周赛的结果或者是相关记录。可能包含...
《LeetCode Top100题目和答案(Java完整版 面试必备)》这个压缩包文件是一个针对Java程序员的面试准备资源,包含了LeetCode上最受欢迎的前100道编程题目及其对应的Java解决方案。LeetCode是一个在线平台,提供了一...
【标题】"LeetCode周赛191-逐步提升算法能力" 在LeetCode的周赛191中,参赛者们面临了一系列挑战性的算法题目,旨在帮助他们提升编程技巧和解决复杂问题的能力。LeetCode是一个知名的在线编程平台,提供丰富的算法...
周赛积分LEETCODE 来自 Leetcode 的问题。 您可以找到有关算法和数据结构的一些详细信息。 数据结构 地图 问题编号 名称 语境 001 二和 350 两个数组的交集Ⅱ , 两个指针 简单的 015 三和 设置,地图, 中等的 3 无...
周赛难度leetcode 这是用于跟踪我在项目中解决问题的进度的存储库。 在30_day_challenge文件夹中,我上传了我的解决方案和其他有趣的每月挑战代码。 在weekly_contest或biweekly_contest文件夹上传我的解决方案,我...
leetcode 周赛194 力码竞赛 固定 每周比赛 197: 每周比赛 196: 每周竞赛 195: 每周比赛 194: 每周竞赛 193:
前端攻城狮从零入门算法的宝藏题库,根据知名算法老师的经验总结了 100+ 道 LeetCode 力扣的经典题型 JavaScript 题解和思路。已按题目类型分 label。 调试 提供了 .vscode 配置文件,在 vscode 中选择「小爬虫」...
leetcode卡leetcode-weekly-contest-186 第 186 届 LeetCode 周赛 问题清单 拆分字符串后的最大分数 Given a string s of zeros and ones, return the maximum score after splitting the string into two non-empty...
**支持 13+ 种汇编语言:**Ruby, Swift, Kotlin, C, C++, Java, Python, Javascript, Rust 等等 13 种语言,这让广大的程序员可以自由的选择自己擅长的语言,从而把注意力放在算法的本身上而不是语言上。 **丰富...