LeetCode566/896/888-12/6

  今天刷了三道easy题,其中一道题看错题目,其余都做出来了。下面记录下要点。

566
这道题的要求为给定一个矩阵和两个数r、c。按照r、c重新排列矩阵,使矩阵成为一个r*c的新矩阵,数字则是依次继承。

题目本身没什么难度,方法效率也大同小异。但我发现了一些简洁的代码,主要是利用了/和%操作。
比如:
res[i/c][i%c] = nums[i/m][i%m];
这样使得整个代码看起来非常简洁。

896
这道题需要保证数组单调。和566一样,题目本身没什么难度。但是却发现了非常优美的代码,分享在了github,可以多看看。

888
这道题非常坑,由于我垃圾的英语水平,导致看错题目。浪费大量时间。
题目给定两个数组A、B,要求交换其中的两个数,使得两个数组的和相等。并返回长度为2的数组,0放A交换的数字,1放B交换的数字。(我看成返回新的数组了)

这道题实现并不难,关键是如何高效率的实现。因为这道题的input数组有的非常大,导致效率非常低。看了一个大佬的discuss,发现HashSet这个好东西,能够快速的找到集合中的值(o(1)),需要多多熟悉。

同时,还用了IntStream流来计算数组的和,代码非常简洁,就是效率好像没有for循环快。
IntStream.of(A).sum();
IntStream是JDK8才有的新特性,需要好好掌握。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值