gpt4 book ai didi

c++ - 数组旋转和删除

转载 作者:太空狗 更新时间:2023-10-29 22:54:25 24 4
gpt4 key购买 nike

基于 GeeksForGeeks 中的问题 here .我遇到了一个解决方案 here .

有人可以帮我理解解决方案吗?我主要需要以下方面的帮助:

if(n==1) cout<<arr[0]<<endl;
else if(n%2) {
ll ind = n-3;
ind = floor(ind/4);
ind = 3+ind;
cout<<arr[ind-1]<<endl;
} else {
ll ind = n-2;
ind = floor(ind/4);
ind = 2+ind;
cout<<arr[ind-1]<<endl;
}

最佳答案

对于每个大小的数组,一个特定的位置就是答案(即独立于数组元素)。

对于任何大小为 8 的数组,第 2 个位置(即第 3 个元素)给出答案。

让我们看一些例子:

  • 大小=1,位置=0

  • 大小=2,位置=1
  • 大小=3,位置=2
  • 大小=4,位置=1
  • 大小=5,位置=2

  • 大小=6,位置=2
  • 大小=7,位置=3
  • 大小=8,位置=2
  • 大小=9,位置=3

  • 大小=10,位置=3
  • 大小=11,位置=4
  • 大小=12,位置=3
  • 大小=13,位置=4

  • 大小=14,位置=4
  • 大小=15,位置=5
  • 大小=16,位置=4
  • 尺寸=17,位置=5

  • 尺寸=18,位置=5
  • 尺寸=19,位置=6
  • 大小=20,位置=5
  • 尺寸=21,位置=6

等等。

对于偶数:floor( (n-3)/4 )+2 给出位置。

对于奇数大小:floor( (n-2)/4 )+1 给出位置。

关于c++ - 数组旋转和删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56031853/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com