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

青岛慧思网站建设网站动态图怎么做

青岛慧思网站建设,网站动态图怎么做,40平米老板办公室布置,茶叶 企业 网站建设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.yayakq.cn/news/43412/

相关文章:

  • 怎么样自己做最简单的网站淮南直聘网
  • 给上市公司做网站有什么用厦门做网站 厦门专业做网站的公司 我想做网站
  • 福州网站建设发布卡盟网站建设
  • 网站建设找工作高端网站案例网站建设
  • 安微省住房和城乡建设厅网站wordpress链接英文
  • 企业网站手机版源码下载温州的高端设计公司
  • 郴州做网站ku0735做网站需要什么人
  • 做网站行业统称叫什么行业网站文章的作用
  • 网站登录注册页面模板企业软文营销
  • 影视广告制作公司seo搜索引擎优化报价
  • 网站个人备案wordpress读取菜单
  • 创新的南昌网站设计网页设计的主题说明
  • 便宜建站建设网站需要做的工作
  • 网站建设论文1000字网络设计公司排名
  • 网站的建设好处国际外贸平台有哪些
  • 登封市建设局网站怎么做类似淘宝网站吗
  • 做企业网站设网站建设的问题
  • 凡科做的网站打不开网站设计psd
  • 需要做网站设计的公司佛山新网站建设详细内容
  • 长辛店网站建设网站推广 软件
  • 青岛网站seo技巧易语言 做的网站
  • 网站建设教程在线观看招聘网站制作公司
  • 株洲市建设局网站毛局长app免费版下载安装
  • 大通县公司网站建设天水市建设银行官方网站
  • 深圳建设局投标网站wordpress多域名插件
  • 网站规划设计如何在国外网站做推广
  • 如何用wordpress搭建网站网站备案资料下载
  • 长沙哪里学网站建设郑州百度搜索优化
  • 公司网站包含哪些内容一站式外贸综合服务平台
  • 天津网站优化实战放置文件