- 博客(16)
- 收藏
- 关注
原创 LeetCode Scala 11. Container With Most Water 盛最多水的容器
解题思路题目描述暴力循环嵌套双指针扫描法题目描述题目来源于 leetcode-cn 1给定 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。示例:输入: [1,8,6,2,5,4,8,3,7]输...
2019-10-08 10:23:11
250
原创 LeetCode Scala 35. Search Insert Position 搜索插入位置
解题思路题目原文[^1]线性按位查找折半查找题目原文1给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 1:输入: [1,3,5,6], 5输出: 2示例 2:输入: [1,3,5,6], 2输出: 1示例 3:输入: [1,3,5,6], 7输出: 4...
2019-10-08 09:13:01
349
原创 LeetCode Scala 5213. Play with Chips 玩筹码 第157次周赛第一题
LeetCode Scala 5213. Play with Chips 玩筹码 第157次周赛第一题
2019-10-07 17:33:41
267
原创 LeetCode Scala 136. Single Number 只出现一次的数字
解题思路按位异或计算按位异或计算简单来说,异或运算允许交换律的存在,比如这样a^b^c=c^b^aa \verb ^ b \verb ^ c = c \verb ^ b \verb ^ aa^b^c=c^b^a所以就可以简单的使用连续的异或来进行运算,这里使用普通的连续异或运算即可得到结果。object Solution { def singleNumber(nums: A...
2019-10-04 21:42:08
196
原创 LeetCode Scala 50. Pow(x, n) X 的 n 幂
解题思路调包解决逐步乘下去解决二分法解决调包解决Scala 内置了 math 库,其中有 pow(x, n) 函数,就是本题所要实现的函数object Solution { def myPow(x: Double, n: Int): Double = { scala.math.pow(x,n) }}逐步乘下去解决失败!简单来说,他们通过几个用例直接...
2019-10-04 21:01:48
806
原创 LeetCode Scala 6. ZigZag Conversion Z 字形变换
解题思路字符串拼接法另一种字符串拼接法字符串拼接法构建一个 mutable.HashMap 把在里面新建 numRows 个字符串,用他们的行数作为 key,字符串作为 value,然后就构建一个 while,直到把所有的字符都遍历完成为止,这个算法不涉及任何的数学知识,就是相当于设置一个指针,在 n 行之间反复扫描,直到把所有的字符都扫描进去为止,最后再把这些字符串拼接一下作为答案返回ob...
2019-09-19 19:41:34
207
原创 LeetCode Scala 5. Longest Palindromic Substring 最长回文子串
解题思路坦白说这个题我不会(微笑,我好菜),把 LeetCode 官方在知乎上的解答和 JAVA 代码写成了 Scala 实现了一遍(再次微笑),代码如下:object Solution { def longestPalindrome(s: String): String = { if(s=="") "" else{ var (start...
2019-09-19 18:00:27
175
原创 LeetCode Scala 104. Maximum Depth of Binary Tree 二叉树的最大深度
解题思路一个递归解决,这里注意一下问题分类:根节点为 null ,深度为 0左节点且右节点为 null,深度为 1其他情况,看左右子节点哪个的深度大,再加个 1 就是自己到最远叶子节点的深度,倒推回去就是整棵树的最大深度/** * Definition for a binary tree node. * class TreeNode(var _value: Int) { * ...
2019-09-19 11:30:36
151
原创 LeetCode Sala 101. Symmetric Tree 对称二叉树
解题思路递归法借用100题的递归函数递归法借用100题的递归函数这里的递归直接应用了 100 题的那个递归函数,因为这个问题可以被化为根节点的左子树和根节点的右子树的对称树的比较。所以,结合之前的那个题目的函数,只要将左右子节点放置的时候进行一次交换就可以直接完成对称的操作,也是基于100题之上的一种快速解法,但是时间貌似不是很优,存在很大的优化空间,应该是编译阶段的优化(我猜的,别当真),...
2019-09-19 11:13:44
134
原创 LeetCode Scala 100. Same Tree 相同的树
解题思路递归解决,这个我实在是想不出该怎么用递推解决了,思路如下:叶子节点的值相等时返回 true其他节点只对比值的相等性,如果值不相等则直接返回 false优先处理所有的 null 情况,这个是一个超级大的坑把所有的判断结果取与,最终的结果就是判断结果
2019-09-18 23:31:45
126
原创 LeetCode Scala 83. Remove Duplicates from Sorted List 删除排序链表中的重复元素
解题思路注意题目中的条件:已排序链表,所以可以知道,所有重复的元素都是相邻的,所以可以简单判断 cur.x 和 cur.next.x 的值的关系,由此,整个题目的思路变得极为简单,唯一需要注意的内容就是在链表为空时的问题,需要单独处理,这里并不需要再引入一个 Set 来判断是否有这个值已经出现过了。import scala.collection.mutable.HashSet/** * D...
2019-09-18 21:04:10
122
原创 LeetCode Scala 70. ClimbStairs 爬楼梯
解题思路递推思路正常递推原地递推作弊思路递推思路思路来源于B站李永乐老师的视频:https://www.bilibili.com/video/av27168106?from=search&seid=9769742159807447528思路是这样的,对于上到的第 n 个台阶,都可以分解为两个来源:上到第 n-1 个台阶上到第 n-2 个台阶正常递推这里存在一个问题:上到第...
2019-09-18 19:13:10
290
原创 LeetCode Scala 9. Palindrome Number 回文数
解法思路字符串反转解法数字直接反转解法递推法递归法字符串反转解法这个思路很简单,就是把所有的数字都转成字符串,然后调一个reverse方法反转,再比较两者的值是否相等,这个在 Scala 里是比较好做的,Scala 默认情况下的 == 方法是从 any 继承来的,本身是 final 的,而且本身是基于值比较的,这个就不贴代码了,没什么好做的,只是有几个坑需要注意一下:所有的负数都不是回文...
2019-09-18 11:26:17
715
原创 LeetCode Scala 3. 无重复字符串的最长子串
坦白说这个题目我不会做,我只是看了别人的java方案以后自己用scala写了一遍,写的恶形恶相,完全是指令式的,不过我也不太会把这个写成函数式的,只是给其他和我一样的初学者一点参考吧。这个方法式简单的滑动窗口法,初始化两个指针,每一个如果set里没有end的元素,end就前移,如果有end的元素,那么就start前移,记录期间的最大长度,就是答案,属于比较粗暴简单的窗口法,代码如下:objec...
2019-09-17 17:08:19
312
原创 LeetCode Scala 2. add two numbers 两数相加
这个算法有点问题,思路是转成数字再加和再转回来,但是在遇到边缘数的时候会出问题,下一个算法改成了对链表直接求和/** * Definition for singly-linked list. * class ListNode(var _x: Int = 0) { * var next: ListNode = null * var x: Int = _x * } */obje...
2019-09-17 14:38:44
457
原创 LeetCode Scala 1. two sum 两数之和
解题思路遍历法简单来说就是两个for循环,嵌套起来时间复杂度 O(n^2),空间复杂度O(1)object Solution { def twoSum(nums: Array[Int], target: Int): Array[Int] = { val res:Array[Int] = new Array[Int](2) for(i <- 0 until nums...
2019-09-17 14:36:23
356
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人