旋转一个数组以得到最大值。

陷阱就是:不能排序。须要模拟操作旋转,并设计公式计算旋转后的和。

要求是O(n)时间完毕。

原题:

https://www.hackerrank.com/challenges/game-of-rotation

#pragma once
#include <stdio.h> class GameOfRotation
{
public:
GameOfRotation()
{
int N = 0;
scanf("%d", &N);
int *A = new int[N];
long long one = 0, sum = 0, ans = 0;
for (int i = 0; i < N; i++)
{
scanf("%d", &A[i]);
one += (long long)A[i];
sum += (long long)(i+1) * (long long)A[i];
}
ans = sum;
for (int i = 1; i < N; i++)
{
sum = sum - one + (long long)A[i-1] * (long long)N;
ans = ans < sum ? sum : ans;
}
printf("%lld", ans);
delete [] A;
}
}; int gameOfRotation()
{
GameOfRotation();
return 0;
}

最新文章

  1. NOIP2000方格取数[DP]
  2. U盘操作系统,Kali Linux操作系统安装
  3. android技巧(一):如何方便知晓当前Activity?如何管理应用中的Activity?如何最佳的启动一个Activity?
  4. Spring Remoting: Remote Method Invocation (RMI)--转
  5. 310. Minimum Height Trees
  6. Spring web Flow2学习笔记
  7. 文件格式PDF
  8. spry菜单栏(一)
  9. 判断某个对象是不是DOM对象
  10. Junit3.8
  11. 用sql语句写排名
  12. sql如何向一个表中批量插入大量数据
  13. MongoDB-C# Driver账户密码登录问题
  14. 百度云是用SOUI开发的产品
  15. hive 不同用户 权限设置 出错处理
  16. 使用JDBC连接数据库(一)
  17. WF学习思维导图
  18. Django中通过filter和simple_tag为前端实现自定义函数
  19. Ext.NET加入自定义验证JS函数
  20. 0721JS

热门文章

  1. 洛谷 P1068 分数线划定【结构体排序】
  2. Linux命令之vim(二)
  3. java中为什么要用多线程
  4. luogu P2024 食物链
  5. 【最近公共祖先】【线段树】URAL - 2109 - Tourism on Mars
  6. 【分块答案】【最小生成树】【kruscal】bzoj1196 [HNOI2006]公路修建问题
  7. 【暴力】vijos P1897 学姐吃牛排
  8. cocos2dx 3.13 etc1 ClippingNode Bug 修正
  9. CentOS查看主板型号、CPU、显卡、硬盘等信息
  10. CMD_命令行