一、笔记部分
思路:
1.重点在于产生k种差值,有点贪心的意思。我们想要产生差值不同的,所以肯定是最大的减去最小的这样之后的操作才不会和这个操作重复。比如,1 2 3 4 5 如果k=3 那么我们第一步肯定是把5插入到1,2之间把最大差值算出,4 3 ,这样就完成了 4 3 1;如果k是4的话, 那么只需要移动当前的最后两位,1 5 2 3 4 1 5 2 4 3 因为移动后面,意味着从小到大的差值进行排序了。所以这样才符合操作。
2.将数/2看需要有几个要插入,%看是否最后两位交换不。这样进行算奇偶容易出问题,还是直接插中间减2,插末尾减1~~~
1.要造成两倍差的个数
2.看差的个数是奇数还是偶数,是偶数直接将1放在最后一个(1,n)组合,是奇数1放倒数第二个。
3.开始放1~k/2的数从后往前放
4.开始放从前往后放k/2之后的数了
5.无覆盖放置。
二、数组与矩阵类型的高频面试题汇总:
https://blog.csdn.net/qq_40262372/article/details/113150843
三、各种类型的高频面试题汇总:
https://blog.csdn.net/qq_40262372/article/details/112556249