当前位置: 首页 > news >正文

杭州定制网站开发查销售数据的网站

杭州定制网站开发,查销售数据的网站,wordpress 注册 邮件,网站开发学哪一个好java数据结构与算法刷题目录(剑指Offer、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完):https://blog.csdn.net/grd_java/article/details/123063846 解题思路 题目要求我们返回一个数组长度为n的数组,必须含有1~n…
java数据结构与算法刷题目录(剑指Offer、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完):https://blog.csdn.net/grd_java/article/details/123063846

在这里插入图片描述

解题思路
  1. 题目要求我们返回一个数组长度为n的数组,必须含有1~n的所有数,并且从左到右,相邻的元素依次相减,它们的差,必须有k个不同的。比如1,2,3,4,5 这5个数两两相减,都只有一个差----1.如果想要两个不同的差,就不能这么摆。可以这样1,2,3,5,4 这样就有2-1 = 1. 5-3 = 2这样两个不同的差。
  2. 而且我们发现,想要有k个不同的差,必须至少有k+1个数才能完成。大家可以尝试1~5这5个数都只能用一次,然后组出相邻相减情况下的6个不同的差,是不行的。
  3. 最简单的做法就是,用最后一个-最前面的,然后依次缩小范围(用过的不再使用),再次用后面的-前面的。直到达到目标要求的数量
  4. 那么如果要求k个不同的差,给我们n个数(n>=k+1). 我们只需要k+1个数就可以组成k个不同的差,也就是说,有n-k-1个数,我们用不到,直接放入数组即可。剩下的依次用两边的组成不同的差。具体看下面图解:
    在这里插入图片描述
  5. 极端一点的例子
    在这里插入图片描述
代码:时间复杂度O(n) 空间复杂度O(1)

在这里插入图片描述

class Solution {public int[] constructArray(int n, int k) {int[] arr = new int[n];//题目要求的返回数组int index = 0;//数组下标//前面n-k-1个数,我们不需要用来组成差for(int i = 1;i<n-k;i++){arr[index++] = i;}//剩下k+1个数,是我们需要组成k个差的数//每次从两边各取一个for(int i = n - k, j = n; i<=j; i++,j--){arr[index++] = i;//左边取一个//如果是奇数个,最后只会剩下一个数,那么左边和右边都指向同一个元素//上面左边已经放了。右边再放一次就下标越界了。所以需要if(i!=j)这个判断if(i!=j) arr[index++] = j;//右边取一个}return arr;//返回答案数组}
}
http://www.yidumall.com/news/73498.html

相关文章:

  • wordpress如何把网站语言改成英文公众号软文推广多少钱一篇
  • 不用模板怎么建设网站网络营销服务商有哪些
  • 做电子画册的网站企业培训
  • 3合1网站建设价格编程培训机构
  • wordpress主题摘要字数seo搜索引擎入门教程
  • 微网站和小程序的区别电商网站建设开发
  • 邯郸个人做网站关键词怎么优化
  • 北京电商公司有哪些武汉关键词seo
  • 网站 硬件方案软文营销的技巧有哪些
  • 男男sm怎么做视频网站win7系统优化软件
  • 网站建设时间如何查询石家庄疫情最新消息
  • 教务系统管理系统来宾seo
  • 做a 免费网站核心关键词和长尾关键词
  • 邢台做移动网站哪儿好深圳今天重大事件新闻
  • 珠海自助建站永久免费二级域名申请
  • whois 查询系统毕节地seo
  • 网站建设需要学编程吗品牌推广策划方案
  • 百度网站收入提交seochinaz查询
  • html做的网站图片横着摆放精准引流推广公司
  • 政府网站集约化建设意义推广软文平台
  • ps做 网站教程绍兴百度推广优化排名
  • 新乡个人网站建设哪家好免费网站自助建站系统
  • 网站建设哪家技术好优化新十条
  • 个人网站建设免费主机网络推广工作能长久吗
  • 网站平台建设搜狗整站优化
  • 现在市场网站建设怎么样百度快照功能
  • 西安网站设计制作多少钱推广软文范例大全500
  • 深圳宝安沙井疫情seo公司广州
  • 做网站需要多钱广告联盟论坛
  • 中山外包网站设计公司网站建设服务