Scala LeetCode 1.两数之和

Scala 应该每个大数据从业者都要会一点的语言,光会Java或许不行。对我来说,学习一门语言最好的方法就是用这门语言,去A几道题。

题目链接: https://leetcode-cn.com/problems/two-sum/

import scala.collection.mutable

object Main {
  def twoSum(nums: Array[Int], target: Int): Array[Int] = {
    val a: mutable.HashMap[Int, Int] = mutable.HashMap()
    for (i <- nums.indices) {
      val x = target - nums(i)
      if (a.contains(x)) {
        return Array(a(x), i)
      }
      a(nums(i)) = i
    }
    Array(-1, -1)
  }
  def main(args: Array[String]): Unit = {
    assert(twoSum(Array(2, 7, 11, 15), 9).sameElements(Array(0, 1)))
  }
}

从这个简单的题目中可以总结出以下今后会用的东西。
个人感觉 Scala应该是一门表现能力很丰富的语言,我个人风格还是偏向于把它写得像Java一点。

  1. main 方法中 assert可以用来测试
  2. 库多,有比较两个数组是否相等的 sameElements方法
  3. 定义数组用 Array(a1, a2, a3) 不需要 new
  4. HashMap有很多种写法,我这种是先 import scala.collection.mutable 再用
  5. indices可以获取数组的下标集合
  6. 取集合元素的方法从Java的[]变成了()
  7. 最后一行的return可以省略
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值