Scala & LeetCode
Solve LeetCode by scala Lang.
lizju
求关注
展开
-
[Leetcode/c++] 37解数独
题目编写一个程序,通过已填充的空格来解决数独问题。一个数独的解法需遵循如下规则:数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。空白格用 ‘.’ 表示。DFS经典问题, 一个个试着去填, 能填完就是对的。代码CPP#include <bits/stdc++.h>#include <unordered_map>#include <unordered_set&g原创 2020-09-15 11:21:07 · 108 阅读 · 0 评论 -
[LeetCode/Scala] 第188场周赛
P1:用栈操作构建数组给你一个目标数组 target 和一个整数 n。每次迭代,需要从 list = {1,2,3…, n} 中依序读取一个数字。请使用下述操作来构建目标数组 target :Push:从 list 中读取一个新元素, 并将其推入数组中。Pop:删除数组中的最后一个元素。如果目标数组构建完成,就停止读取更多元素。题目数据保证目标数组严格递增,并且只包含 1 到 n 之间的数字。请返回构建目标数组所用的操作序列。题目数据保证答案是唯一的。点评: 这道题是通过栈来描述的,原创 2020-05-10 14:19:08 · 210 阅读 · 0 评论 -
[LeetCode/Scala] 第187场周赛总结
这次周赛题目比较简单,就贴一下code。 比赛时,后面两道题要用的二分搜索包bisect, 因为python自带,就直接上python了。 今天,自己实现了一下bisect这个包的几个函数,能做到log(n)log(n)log(n)的插入和搜索,不过insort的不是insort_right一: Bisect的scala实现, 用了ArrayBuffer, 以后可能会写成更通用的。看后面竞赛题,...原创 2020-05-04 17:25:45 · 175 阅读 · 0 评论 -
[LeetCode/Scala] 机器人的运动范围
题目地上有一个m行n列的方格,从坐标 [0,0] 到坐标 [m-1,n-1] 。一个机器人从坐标 [0, 0] 的格子开始移动,它每次可以向左、右、上、下移动一格(不能移动到方格外),也不能进入行坐标和列坐标的数位之和大于k的格子。例如,当k为18时,机器人能够进入方格 [35, 37] ,因为3+5+3+7=18。但它不能进入方格 [35, 38],因为3+5+3+8=19。请问该机器人能够到...原创 2020-04-08 21:00:55 · 336 阅读 · 0 评论 -
[LeetCode/Scala]第149场周赛解题报告
P1: 我又看了一遍闰年怎么算的P2: DPP3: 常规操作P4: 有点坑,用hash记录一下就可以了。总的来说比较简单,但也没有秒过。object No149 { object P3 { case class Elem(ch:Char, n:Int) def parser(l:List[Char], xs:List[Elem] = Nil):List[Elem] =...原创 2019-08-11 11:56:39 · 131 阅读 · 0 评论 -
[LeetCode/Scala] 第6场双周赛解题报告
p1: 略p2: 考虑最终状态一定是所有1连在一起,所以只需要找这样的区间,使得区间内1的个数最多。P3: 没什么技巧,按题意直接写。 竞赛时,我看题没仔细,忽略了非连续,忽略每个用户只算一次。所以WA了几次。P4: 从str1映射到str2,必须是单射,再考虑str2可能包含全字符,这种情况必须是自映射才行。object B6 { object P4 { def canCon...原创 2019-08-11 00:51:38 · 159 阅读 · 0 评论 -
[LeetCode/Scala] 第148场周赛解题报告
P1:按题意有两种构造方法,只需要比较哪种代价更小就可以了。object Solution { def movesToMakeZigzag(A: Array[Int]): Int = { def f(i:Int):Int = { A.indices.toList .filter(_%2 == i) ....原创 2019-08-04 11:59:16 · 162 阅读 · 0 评论 -
[LeetCode/Scala] 38. Count and Say
The count-and-say sequence is the sequence of integers with the first five terms as following:1112112111112211 is read off as “one 1” or 11.11 is read off as “two 1s” or 21.21...原创 2019-07-30 00:52:19 · 120 阅读 · 0 评论 -
[LeetCode/Scala] 1089. 复写零
给你一个长度固定的整数数组 arr,请你将该数组中出现的每个零都复写一遍,并将其余的元素向右平移。注意:请不要在超过该数组长度的位置写入元素。要求:请对输入的数组 就地 进行上述修改,不要从函数返回任何东西。示例 1:输入:[1,0,2,3,0,4,5,0]输出:null解释:调用函数后,输入的数组将被修改为:[1,0,0,2,3,0,0,4]示例 2:输入:[1,2,3]输出:...原创 2019-07-29 10:35:43 · 218 阅读 · 0 评论 -
[LeetCode/Scala] 第147场周赛解题报告
P1: 斐波那契数列 def tribonacci(n: Int): Int = { def f(a:Int, b:Int, c:Int, n:Int):Int = { if (n == 0) a else f(b, c, a+b+c, n-1) } f(0,1,1,n) }P2...原创 2019-07-28 12:11:24 · 125 阅读 · 0 评论 -
[LeetCode/Scala] 第五场双周赛解题报告
P1: 略P2: 略P3: greedy + union-findP4: 模拟object p3 { class DSU(N:Int){ val parent = (0 until N).toArray def find(x:Int):Int = { val tmp = (if(x != parent(x)) find(parent(x)...原创 2019-07-27 23:23:36 · 112 阅读 · 0 评论 -
[LeetCode/Scala] 20. 有效的括号
给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: “()”输出: true示例 2:输入: “()[]{}”输出: true示例 3:输入: “(]”输出: false示例 4:输入: “([)...原创 2019-07-27 07:50:48 · 136 阅读 · 0 评论 -
[LeetCode/Scala] 14 最长公共前缀
编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例 1:输入: [“flower”,“flow”,“flight”]输出: “fl”示例 2:输入: [“dog”,“racecar”,“car”]输出: “”解释: 输入不存在公共前缀。说明:所有输入只包含小写字母 a-z 。来源:力扣(LeetCode)链接:https://leet...原创 2019-07-27 07:31:32 · 157 阅读 · 0 评论 -
[LeetCode/Scala] 391. Perfect Rectangle
问题: 给定连个数组包含了一些矩阵, 判断这些矩阵能否完美组合成一个大矩阵。我的思路很简单。 // __________________ // | | | // | R0 | | // |--------| R1 | // |...原创 2019-07-26 07:27:01 · 140 阅读 · 0 评论 -
[LeetCode/Scala] 第146场周赛解题报告
P1. 要求计算相同的点的个数, 我们只需要将相同的点group到一个组, 然后根据每个group的数量累加就可以了 def numEquivDominoPairs(A: Array[Array[Int]]): Int = { A.groupBy {case Array(x,y) => (x min y, x max y)} .values.toLi...原创 2019-07-22 01:34:40 · 161 阅读 · 0 评论 -
[LeetCode/Scala] 第145场周赛结题报告
第一题:略第二题:略第三题:略第四题:DP 并记录路径。import language.postfixOpsimport scala.collection.mutableobject Contest145 { // P1 code def relativeSortArray(A: Array[Int], B: Array[Int]): Array[Int] = { ...原创 2019-07-14 17:22:59 · 156 阅读 · 0 评论 -
[LeetCode/Scala] 第144场周赛解题报告
IP 地址无效化给你一个有效的 IPv4 地址 address,返回这个 IP 地址的无效化版本。所谓无效化 IP 地址,其实就是用 “[.]” 代替了每个 “.”。示例 1:输入:address = “1.1.1.1”输出:“1[.]1[.]1[.]1”示例 2:输入:address = “255.100.50.0”输出:“255[.]100[.]50[.]0”提示:给出...原创 2019-07-08 08:26:06 · 190 阅读 · 0 评论 -
[LeetCode/Scala]第143场周赛
排排坐,分糖果。我们买了一些糖果 candies,打算把它们分给排好队的 n = num_people 个小朋友。给第一个小朋友 1 颗糖果,第二个小朋友 2 颗,依此类推,直到给最后一个小朋友 n 颗糖果。然后,我们再回到队伍的起点,给第一个小朋友 n + 1 颗糖果,第二个小朋友 n + 2 颗,依此类推,直到给最后一个小朋友 2 * n 颗糖果。重复上述过程(每次都比上一次多给出一颗...原创 2019-06-30 15:39:28 · 256 阅读 · 0 评论 -
[LeetCode/Scala] 452. 用最少数量的箭引爆气球
在二维空间中有许多球形的气球。对于每个气球,提供的输入是水平方向上,气球直径的开始和结束坐标。由于它是水平的,所以y坐标并不重要,因此只要知道开始和结束的x坐标就足够了。开始坐标总是小于结束坐标。平面内最多存在104个气球。一支弓箭可以沿着x轴从不同点完全垂直地射出。在坐标x处射出一支箭,若有一个气球的直径的开始和结束坐标为 xstart,xend, 且满足 xstart ≤ x ≤ xend...原创 2019-06-18 22:47:20 · 123 阅读 · 0 评论 -
[LeetCode/Scala] 670.最大交换
给定一个非负整数,你至多可以交换一次数字中的任意两位。返回你能得到的最大值。示例 1 :输入: 2736输出: 7236解释: 交换数字2和数字7。示例 2 :输入: 9973输出: 9973解释: 不需要交换。注意:给定数字的范围是 [0, 108]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/maximum-swa...原创 2019-06-12 17:31:17 · 398 阅读 · 0 评论 -
[Leetcode/Scala] 688. “马”在棋盘上的概率
已知一个 NxN 的国际象棋棋盘,棋盘的行号和列号都是从 0 开始。即最左上角的格子记为 (0, 0),最右下角的记为 (N-1, N-1)。现有一个 “马”(也译作 “骑士”)位于 (r, c) ,并打算进行 K 次移动。如下图所示,国际象棋的 “马” 每一步先沿水平或垂直方向移动 2 个格子,然后向与之相垂直的方向再移动 1 个格子,共有 8 个可选的位置。现在 “马” 每一步都从可选...原创 2019-06-08 12:06:50 · 182 阅读 · 0 评论 -
[LeetCode/Scala] 第152场
P1: 全排列问题, 偏数学。 需要主要越界P2: 题目描述不清楚, 认真读懂即可。 可以用滑动窗口,效率更高。P3: 区间查询问题, 类似求累加和。 scala 没能过,转换成c++,可以ac。P4: 偏简单。 也是效率问题,用C++做。需要说明的事,P4和P3都可以通过一些判定去预处理数据,从而减小运算量。这也使得算法题,更像数学题。但从逻辑上讲,就是分类讨论。object C152...原创 2019-09-01 17:05:00 · 115 阅读 · 0 评论