leetcode第 284 场周赛(未完成)

6031. 找出数组中的所有 K 近邻下标

究极简单题,用时7分37秒。

我的方法:先把满足条件2的单独存一个数组,再一边遍历新数组,一边对着原数组逐一检查是否符合条件1。

总结:多此一举,既然都是两次循环,直接两次循环找出最终答案得了,浪费了一个新数组的空间和第二次遍历新数组的时间,代码还更长。

5203. 统计可以提取的工件

简单中等题,用时15分钟多。

我的方法:先遍历dig数组,将二元组[a,b]存进二维数组w[a][b]=1中,然后遍历工件数组,逐一检查每个工件占用的每个位置。

总结:方法和题目本身都简单,还是自己动作太慢。

5227. K 次操作后最大化顶端元素

中等题,用时55分钟!

这道题我要深刻反省,说是k次操作就老老实实地在写每次操作的具体方法(写了del方法、insert方法啥的),还真的用了一个栈来存,用数组来存剩下的和拿走的,属于是用战术上的勤奋掩盖战略上的懒惰。

其实这道题根本不用真正模拟具体操作过程,重点是想清楚规律:

  1. 只有一个数时,如果K是奇数,最后只剩空栈。
  2. 只有一个数时,如果k是偶数,最后剩这一个数在栈里。
  3. 多个数时,找前k-1个数里的最大值m,结果很可能是这个m(特殊见4),(相当于前面一顿拿),第k步把m放回来。k>n时也一样,就在n个数中找m。
  4. 特殊情况时k<n,而且第k+1个数比前k-1个数都大,最后结果就是这第k个数,(只拿不放回)。
  5. 第k个数最大的情况不用处理,因为拿出或者放回k次,不可能留k在顶上。

6032. 得到要求路径的最小带权子图 

困难,到这道题时只剩12分钟了,不过看了看好像也确实不会。

做了一下午还是没对。。。可见dijskra算法应用得还是很不熟练,效率期间先留在这,等补

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值