题目

小美请小团吃回转寿司。转盘上有N盘寿司围成一圈,第1盘与第2盘相邻,第2盘与第3盘相邻,…,第N-1盘与第N盘相邻,第N盘与第1盘相邻。小团认为第i盘寿司的美味值为A[i](可能是负值,如果小团讨厌这盘寿司)。现在,小团要在转盘上选出连续的若干盘寿司,使得这些寿司的美味值之和最大(允许不选任何寿司,此时美味值总和为0)。

输入描述:

第一行输入一个整数T(1<=T<=10),表示数据组数。
每组数据占两行,第一行输入一个整数N(1<=N<=10^5);
第二行输入N个由空格隔开的整数,表示A[1]到A[N](-104<=A[i]<=104)。

输出描述:

每组数据输出占一行,输出一个整数,表示连续若干盘寿司的美味值之和的最大值。

示例1
输入

1
4
3 -2 4 -1

输出

6

说明

美味值之和最大连续若干盘寿司为第3盘、第4盘和第1盘。

题解

本来以为是求数组的是最大和, 可以考虑动态规划, 但是看到需要收尾相接, 那么基础还是求最大和, 只是需要处理环的链接部分.
环的部分难点在于, 单向计算数组的最大和的回头问题, 最开始想的是, 原有数组基础上后面追加一遍数组元素, 营造一个假的环, 但是, 还要处理最大连续的个数, 感觉绕进了一个死胡同.

于是乎这里有一个巧妙地思路:

最大连续和 + 最小连续和 = 总数和
上述两个和是互斥的而且紧密相连

所以,

  • 如果最大连续和是跨环节点的, 那么就用 `总数 - 最小连续
  • 如果最大连续和不是跨节点, 那么取求出的最大连续

代码

代码只是核心部分, 题目中提到的组数, 这里只是一组的代码, 多组可以添加上wihle循环.

func maxSum(_ array: Array<Int>?) -> Int {guard let data = array else {return 0}var dpMax: Int = data[0]var _max : Int = data[0]var dpMin: Int = data[0]var _min: Int = data[0]var sum: Int = data[0]for index in 1..<data.count {let cur = data[index]sum += curdpMax = max(dpMax + cur, cur)_max = max(_max, dpMax)dpMin = min(dpMin + cur, cur)_min = min(_min, dpMin)}print(sum, _max, _min)return max(sum - _min, _max)
}

无奈

牛客上的笔试部分的输入, 一直不知道该怎么办, 有大佬知道该怎么做吗???

iOS算法--美团 旋转寿司相关推荐

  1. leetcode初级算法2.旋转数组

    leecode初级算法2.旋转数组 仅为个人刷题记录,不提供解题思路 题解与收获 我自己的解法: public static void rotate(int[] nums, int k) {int m ...

  2. [iOS]监控屏幕旋转

    [iOS]监控屏幕旋转 - (void)viewDidLoad {[super viewDidLoad];//设备旋转通知[[UIDevice currentDevice] beginGenerati ...

  3. 图像处理:手写实现图像增广算法(旋转、亮度调整、裁剪与拼接)

    目录 前言 算法理论 基础实现 a.旋转 b.亮度调整 c.裁剪及拼接 随机调整参数 d.随机翻转算法 e.随机颜色明暗调整算法 f.随机裁剪算法 实验分析 本章小结 参考文章 前言 图像增广算法在计 ...

  4. iOS开发屏幕旋转锁定横竖屏解决方法

    iOS开发屏幕旋转锁定横竖屏解决方法 使用场景: 公司最近产品,有两个界面是横屏的,其他的界面是竖屏的.针对这个需求,也调试了一段时间.在网上也查找了不少资料. 解决的方案也是有的,但是都是需要在导航 ...

  5. 算法---------搜索旋转排序数组

    假设按照升序排序的数组在预先未知的某个点上进行了旋转.( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] ).搜索一个给定的目标值,如果数组中存在这个目标值,则返 ...

  6. 基于.NET Standard的分布式自增ID算法--美团点评LeafSegment

    概述 前一篇文章讲述了最流行的分布式ID生成算法snowflake,本篇文章根据美团点评分布式ID生成系统文章,介绍另一种相对更容易理解和编写的分布式ID生成方式. 实现原理 Leaf这个名字是来自德 ...

  7. ios 图片逆时针旋转_iphone-IOS 竖直拍照被旋转,image-orientation 让图片自动旋转

    本文目录结构 IOS 垂直拍照的时候会遇到,PC 端读取的时候,逆时针旋转了 90 度的问题: 安卓.PS 处理的,相册选择截图等不会出现这个问题: 场景说明: 这个图片在浏览器里,如果您单独打开的时 ...

  8. iOS中如何旋转UIView

    2019独角兽企业重金招聘Python工程师标准>>> 这几天做iOS的东西,要实现一个Tip提示,就是出现一会儿,然后隐藏的,通过UIView实现的.实现完了,发现在横向时,不能旋 ...

  9. ios禁止屏幕旋转的几种方法

    一般的应用,只会支持竖屏正方向一个方向,支持多个屏幕方向的应用还是比较少的.  不过我在工作的项目中,跟这个屏幕方向接触比较多,因为我们是一个有界面的 SDK,要让接入方接入的,一开始做没什么经验,考 ...

最新文章

  1. 独热编码(one-hot)是什么?什么数据类型需要进行独热编码?pandas如何进行独热编码(one-hot)?
  2. 【翻译】SQL Server索引进阶:第三级,聚集索引
  3. 阿里云与WPS深度合作,开放数据处理生态
  4. python小游戏代码大全-20行python代码的入门级小游戏的详解
  5. Oracle osw监控工具的使用示例
  6. 【转】SAP 权限设定、分配及传输
  7. C语言 满分代码 L1-047 装睡(解题报告)
  8. c#quartz触发_SpringBoot集成Quartz实现定时任务
  9. 理解 Delphi 的类(十) - 深入方法[27] - 递归函数: 简单示例
  10. 决赛来袭!十强战队齐聚,终极一战拉开帷幕!
  11. SharedCache分析:服务端程序
  12. Skype for Business 2015全新部署_10.边缘服务器安装01
  13. [导入]16:50论坛终于恢复了
  14. 【路径规划】基于matlab GUI蚁群算法求解电动汽车充电站与换电站协调路径规划【含Matlab源码 796期】
  15. Qt TextEdit 不自动换行 取消换行
  16. 蓝桥杯 T32大臣的旅费
  17. Zope/Plone内容管理系统的探讨与应用
  18. 当远程工作成为未来的工作方式......
  19. html5使用websocket发送(PCM)音频数据到服务器,再转在wav文件
  20. 如何修复Kindle频繁自动锁屏和解锁

热门文章

  1. Oracle各个服务介绍
  2. android WebRtc 视频通话(P2P)
  3. python数字1 3怎么表示_Python3数据类型之数字
  4. 游戏运营数据解读之----ARPU[国外称之为ARPPU]
  5. 一个男孩子写的超级情书!!!
  6. 渣渣的Leetcode之旅(Python3)_打卡(12,15,917,7,8)
  7. 微信小程序直连蓝牙实现控制继电器及串口调试功能--全系统开源工程
  8. 如何“管理”自己的上级
  9. 基于JSP+MySQL的网上购书商城
  10. 网络基础配置部署思路