iOS算法--美团 旋转寿司
题目
小美请小团吃回转寿司。转盘上有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算法--美团 旋转寿司相关推荐
- leetcode初级算法2.旋转数组
leecode初级算法2.旋转数组 仅为个人刷题记录,不提供解题思路 题解与收获 我自己的解法: public static void rotate(int[] nums, int k) {int m ...
- [iOS]监控屏幕旋转
[iOS]监控屏幕旋转 - (void)viewDidLoad {[super viewDidLoad];//设备旋转通知[[UIDevice currentDevice] beginGenerati ...
- 图像处理:手写实现图像增广算法(旋转、亮度调整、裁剪与拼接)
目录 前言 算法理论 基础实现 a.旋转 b.亮度调整 c.裁剪及拼接 随机调整参数 d.随机翻转算法 e.随机颜色明暗调整算法 f.随机裁剪算法 实验分析 本章小结 参考文章 前言 图像增广算法在计 ...
- iOS开发屏幕旋转锁定横竖屏解决方法
iOS开发屏幕旋转锁定横竖屏解决方法 使用场景: 公司最近产品,有两个界面是横屏的,其他的界面是竖屏的.针对这个需求,也调试了一段时间.在网上也查找了不少资料. 解决的方案也是有的,但是都是需要在导航 ...
- 算法---------搜索旋转排序数组
假设按照升序排序的数组在预先未知的某个点上进行了旋转.( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] ).搜索一个给定的目标值,如果数组中存在这个目标值,则返 ...
- 基于.NET Standard的分布式自增ID算法--美团点评LeafSegment
概述 前一篇文章讲述了最流行的分布式ID生成算法snowflake,本篇文章根据美团点评分布式ID生成系统文章,介绍另一种相对更容易理解和编写的分布式ID生成方式. 实现原理 Leaf这个名字是来自德 ...
- ios 图片逆时针旋转_iphone-IOS 竖直拍照被旋转,image-orientation 让图片自动旋转
本文目录结构 IOS 垂直拍照的时候会遇到,PC 端读取的时候,逆时针旋转了 90 度的问题: 安卓.PS 处理的,相册选择截图等不会出现这个问题: 场景说明: 这个图片在浏览器里,如果您单独打开的时 ...
- iOS中如何旋转UIView
2019独角兽企业重金招聘Python工程师标准>>> 这几天做iOS的东西,要实现一个Tip提示,就是出现一会儿,然后隐藏的,通过UIView实现的.实现完了,发现在横向时,不能旋 ...
- ios禁止屏幕旋转的几种方法
一般的应用,只会支持竖屏正方向一个方向,支持多个屏幕方向的应用还是比较少的. 不过我在工作的项目中,跟这个屏幕方向接触比较多,因为我们是一个有界面的 SDK,要让接入方接入的,一开始做没什么经验,考 ...
最新文章
- 独热编码(one-hot)是什么?什么数据类型需要进行独热编码?pandas如何进行独热编码(one-hot)?
- 【翻译】SQL Server索引进阶:第三级,聚集索引
- 阿里云与WPS深度合作,开放数据处理生态
- python小游戏代码大全-20行python代码的入门级小游戏的详解
- Oracle osw监控工具的使用示例
- 【转】SAP 权限设定、分配及传输
- C语言 满分代码 L1-047 装睡(解题报告)
- c#quartz触发_SpringBoot集成Quartz实现定时任务
- 理解 Delphi 的类(十) - 深入方法[27] - 递归函数: 简单示例
- 决赛来袭!十强战队齐聚,终极一战拉开帷幕!
- SharedCache分析:服务端程序
- Skype for Business 2015全新部署_10.边缘服务器安装01
- [导入]16:50论坛终于恢复了
- 【路径规划】基于matlab GUI蚁群算法求解电动汽车充电站与换电站协调路径规划【含Matlab源码 796期】
- Qt TextEdit 不自动换行 取消换行
- 蓝桥杯 T32大臣的旅费
- Zope/Plone内容管理系统的探讨与应用
- 当远程工作成为未来的工作方式......
- html5使用websocket发送(PCM)音频数据到服务器,再转在wav文件
- 如何修复Kindle频繁自动锁屏和解锁
热门文章
- Oracle各个服务介绍
- android WebRtc 视频通话(P2P)
- python数字1 3怎么表示_Python3数据类型之数字
- 游戏运营数据解读之----ARPU[国外称之为ARPPU]
- 一个男孩子写的超级情书!!!
- 渣渣的Leetcode之旅(Python3)_打卡(12,15,917,7,8)
- 微信小程序直连蓝牙实现控制继电器及串口调试功能--全系统开源工程
- 如何“管理”自己的上级
- 基于JSP+MySQL的网上购书商城
- 网络基础配置部署思路