当前位置:网站首页>Leetcode daily practice: rotating arrays
Leetcode daily practice: rotating arrays
2022-07-05 17:48:00 【Sharp blade CC】

link : Rotated array
Ask us to transfer , Is to move the last number to the front , Then keep the other numbers in order and move one step back .
Conventional thinking : Just use while loop , The title requires us to rotate n Time , We'll be back n Move the numbers to the front . Although this idea works , But think about it , Move the front number back each time , This time complexity is not low , So we won't talk about this conventional idea here .
New ideas : The title requires us to rotate the array , In fact, we can First flip the entire array in order , then Before we move on n - 1 Number reversal order , Finally, after numsSize - n Number reversal order ( Suppose the number of arrays here is numsSize individual ), In fact, the array rotation is completed .
notes : Here's a key point , Namely If you flip n Time , and n Equal to the length of the array numsSize Words , In fact, the original array does not move , And so on , So we can n Do something about it .
And the spatial complexity of this idea is O(1) Of !
Code :
void partRotate(int* a, int left, int right)
{
// Use left and right pointers
while(left < right)
{
int tmp = a[left];
a[left] = a[right];
a[right] = tmp;
left++;
right--;
}
}
void rotate(int* nums, int numsSize, int k){
k %= numsSize;
// if k The finished length of the die is 0, Then there is no need to rotate
if(k == 0)
return;
partRotate(nums, 0, numsSize - 1);// First flip the entire array
partRotate(nums, 0, k - 1);// Then flip the front k - 1 individual
partRotate(nums, k, numsSize - 1);// Finally, after turning numsSize - k individual
}

边栏推荐
- Thesis reading_ Chinese NLP_ LTP
- How to save the trained neural network model (pytorch version)
- Compter le temps d'exécution du programme PHP et définir le temps d'exécution maximum de PHP
- Humi analysis: the integrated application of industrial Internet identity analysis and enterprise information system
- 漫画:寻找股票买入卖出的最佳时机
- 论文阅读_医疗NLP模型_ EMBERT
- Alpha conversion from gamma space to linner space under URP (II) -- multi alpha map superposition
- Abnormal recovery of virtual machine Oracle -- Xi Fenfei
- 数据访问 - EntityFramework集成
- Domain name resolution, reverse domain name resolution nbtstat
猜你喜欢

Cmake tutorial Step4 (installation and testing)

Short the command line via jar manifest or via a classpath file and rerun

Check the WiFi password connected to your computer

Oracle Recovery Tools ----oracle数据库恢复利器

Count the running time of PHP program and set the maximum running time of PHP

Why is all (()) true and any (()) false?

提高應用程序性能的7個DevOps實踐
Complete solution instance of Oracle shrink table space

Mongodb (quick start) (I)
Redis+caffeine two-level cache enables smooth access speed
随机推荐
Thesis reading_ Medical NLP model_ EMBERT
Disorganized series
Matlab reference
论文阅读_中文NLP_LTP
如何修改mysql字段为自增长字段
Accuracy of BigDecimal Division
Cartoon: a bloody case caused by a math problem
Cartoon: how to multiply large integers? (next)
Knowledge points of MySQL (6)
Cmake tutorial Step2 (add Library)
VBA drives SAP GUI to realize office automation (II): judge whether elements exist
Tita 绩效宝:如何为年中考核做准备?
Why is all (()) true and any (()) false?
LeetCode每日一题:合并两个有序数组
This 17-year-old hacker genius cracked the first generation iPhone!
Compter le temps d'exécution du programme PHP et définir le temps d'exécution maximum de PHP
「运维有小邓」用于云应用程序的单点登录解决方案
How to modify MySQL fields as self growing fields
世界上最难的5种编程语言
BigDecimal除法的精度问题