Given an array A of integers, for each integer A[i] we may choose any x with -K <= x <= K, and add x to A[i].After this process, we have some array B.Return the smallest possible difference between the maximum value of B and the minimum value of B.

说实话,看不懂题目在讲什么。一开始
给定一个数组A,对每个其中的数来说,我们可以从-k<x<k中选一个加到A中,那么我们就会得到一些数组B,然后返回数组B中最大值最小值相差最小的一个。

看了很久终于,明白了,这么简单的一个问题,被复杂成这样------

class Solution(object):def smallestRange1(self,A,K):return max(0,max(A)-min(A) -2k)

就是看最大值减去最小值看看多少,如果是正的就返回它,如果是负的就返回0。

再做一题:
881. Boats to Save People
The i-th person has weight people[i], and each boat can carry a maximum weight of limit.

Each boat carries at most 2 people at the same time, provided the sum of the weight of those people is at most limit.

Return the minimum number of boats to carry every given person. (It is guaranteed each person can be carried by a boat.)

菜鸟上来当然是暴力解法啦
思路,先排序一下,如果最大和最小的不能坐同一个船,那么就只能让最大的自己坐一个船,如果可以那么弹出。

class Solution(object):def numRescueBoats(self, people, limit):""":type people: List[int]:type limit: int:rtype: int"""people.sort()ans = 0while people:if people[-1] + people[0] >limit:people.pop()ans+=1else : people.pop()people.pop(0)ans+=1if len(people) == 1:ans+=1people.pop()return ans

再看看大佬们的思路:
woqu,大佬思路和我一样,大喜过望,然后一看代码。。。大佬6行,我14行。妈也

class Solution(object):def numRescueBoats(self, people, limit):people.sort()i, j = 0, len(people) - 1ans = 0while i <= j:ans += 1if people[i] + people[j] <= limit:i += 1j -= 1return ans

思路不一样之处在于,我是面向people,大佬是面向指针。。

908. Smallest Range I相关推荐

  1. 【leetcode】910. Smallest Range II

    题目如下: 解题思路:我的思路是先找出最大值.对于数组中任意一个元素A[i]来说,如果A[i] + K 是B中的最大值,那么意味着从A[i+1]开始的元素都要减去K,即如果有A[i] + K > ...

  2. LeetCode 910. Smallest Range II

    很有意思的一道数学推理题目, 剪枝以后解法也很简洁. 初看貌似需要把每个数跟其他数作比较.但排序以后可以发现情况大大简化: 对于任一对元素a[i] < a[j], a[i] - k和a[j] + ...

  3. 181.Smallest Range I

    题目 Given an array A of integers, for each integer A[i] we may choose any x with -K <= x <= K, ...

  4. 632. Smallest Range Covering Elements from K Lists 最小区间

    你有 k 个升序排列的整数数组.找到一个最小区间,使得 k 个列表中的每个列表至少有一个数包含在其中. 我们定义如果 b-a < d-c 或者在 b-a == d-c 时 a < c,则区 ...

  5. LeetCode Smallest Range

    数据范围是3500,3500也就是说n的平方是可以接受的.这里告诉你就是有序的,也就是在提醒你可能会是一个类似于二分的算法,所以的话其实基于这两个认识的话我们就可以利用一个枚举叫二分的算法来解决这道题 ...

  6. Leetcode算法题-解法转载

    版权声明:本文为博主原创文章,未经博主允许不得转载.    https://blog.csdn.net/fuxuemingzhu/article/details/85112591 作者: 负雪明烛 i ...

  7. LeetCode 力扣算法题解汇总,All in One

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: https://fuxuemingzhu.cn 关键词:LeetCode,力扣,算法,题解,汇总,解析 把自己刷过的所有题目做一个整理, ...

  8. 【LeetCode】字符串 string(共112题)

    [3]Longest Substring Without Repeating Characters (2019年1月22日,复习) [5]Longest Palindromic Substring ( ...

  9. 网页设计简约_简约设计指南

    网页设计简约 Minimalism is the concept that embodies the phrase "less is more". It is also a con ...

最新文章

  1. 服务端异步IO配合协程浅析
  2. Qt使用教程:使用Qt Quick UI表单(五)
  3. java使用集合存储过程_详解java调用存储过程并封装成map
  4. 7个你不知道的WP7开发工具
  5. DP(优化) UVALive 6073 Math Magic
  6. 贪吃蛇python语言代码_Python贪吃蛇简单的代码
  7. C++ Primer Plus学习(十一)——类和动态内存分配
  8. Iframe跳转问题
  9. ubuntu安装deep-wine下载qq,tim等文件
  10. 复旦大学2018--2019学年第二学期(18级)高等代数II期末考试第八大题解答
  11. 大数据教程,大数据实战教程,大数据教程电信信号强度诊断项目实战
  12. 代码要写注释吗?写你就输了
  13. 商帮文化数据:十大商帮文化代理变量(数据+代码)
  14. Xcode10适配之libstdc++.6.0.9.tdb
  15. 你不可不知的《哈利波特》秘密(三)
  16. Storm部署与运行
  17. 接着外挂教程 VB 从零开始编外挂
  18. 计算机微程序控制器实验报告,计算机组成原理微程序控制器实验报告
  19. 【Flutter】如何完成一个透明沉浸式状态栏
  20. java项目统一打印入参出参等日志

热门文章

  1. GeForce GTX 480 测试报告
  2. PowerBI基础知识——深化和钻取
  3. 常用计算机office操作知识,【公基小考点】​OFFICE操作常识
  4. Unity3D游戏开发之[三国杀传奇]单月双平台流水近5000万
  5. 魔乐科技java面试题
  6. 机床数据采集之新代(SYNETC)IP网络地址参数设定
  7. 混凝土静力受压弹性模量试验计算公式_谈混凝土静力受压弹性模量
  8. 侵犯公民个人信息罪怎么判刑
  9. Linux系统使用LAMP架构部署Discuz论坛系统,简洁明了
  10. 用java设计节拍器_java定时执行方法节拍器