三段逆置法

2024-04-11 06:28
文章标签 三段 逆置法

本文主要是介绍三段逆置法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

例子:

轮转数组

给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。

示例 1:

输入: nums = [1,2,3,4,5,6,7], k = 3
输出: [5,6,7,1,2,3,4]
解释:
向右轮转 1 步: [7,1,2,3,4,5,6]
向右轮转 2 步: [6,7,1,2,3,4,5]
向右轮转 3 步: [5,6,7,1,2,3,4]

示例 2:

输入:nums = [-1,-100,3,99], k = 2
输出:[3,99,-1,-100]
解释: 
向右轮转 1 步: [99,-1,-100,3]
向右轮转 2 步: [3,99,-1,-100]

提示:

  • 1 <= nums.length <= 105
  • -231 <= nums[i] <= 231 - 1
  • 0 <= k <= 105

void Reverse(int* array,int left, int right)
{while(left<right){int temp=array[left];array[left]=array[right];array[right]=temp;left++;right--;}
}
void rotate(int* nums, int numsSize, int k) {k=k%numsSize;Reverse(nums,0,numsSize-k-1);Reverse(nums,numsSize-k,numsSize-1);Reverse(nums,0,numsSize-1);}

这篇关于三段逆置法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/893310

相关文章

Unity2D游戏制作入门 | 13 ( 之人物三段攻击 )

上期链接:Unity2D游戏制作入门 | 12(之人物受伤和死亡的逻辑动画)-CSDN博客 上期我们聊了人物的受伤和死亡的逻辑和动画,我们主要学习了事件的执行,即我们在人物受伤时可能会触发很多的事件,比如触发人物受伤的动画以及播放音乐等(可以是人物受伤时发出的声音),然后我们要使用了覆盖和叠层的概念,关键是多重事件的注册。这期我们来看看人物的三段攻击动画的执行。下方代码: //Player_c

Unity2D游戏制作入门 | 13 ( 之人物三段攻击 )

上期链接:Unity2D游戏制作入门 | 12(之人物受伤和死亡的逻辑动画)-CSDN博客 上期我们聊了人物的受伤和死亡的逻辑和动画,我们主要学习了事件的执行,即我们在人物受伤时可能会触发很多的事件,比如触发人物受伤的动画以及播放音乐等(可以是人物受伤时发出的声音),然后我们要使用了覆盖和叠层的概念,关键是多重事件的注册。这期我们来看看人物的三段攻击动画的执行。下方代码: //Player_c

PT6905电感型降压转换器三段调光功能输出电流1.2A

PT6905 是一款工作在连续模式下的电感型降压转换器, 具有三段调光功能。在电源电压高于输出电压的情况下, 能高效地驱动单颗或者多颗串联LEDIC的输入电压范 围为6V~36V,并能提供一个可进行三段调光,最大值达 1.2A的输出电流。 PT6905 内部集成了功率管和高端输出电流检测电路,利 用外部电阻可设定平均输出电流。 PT6905具有三段调光功能。当第一次给IC上电时,输出 电流为设定值

html经典上中下三段的布局设计

这个是一个经典的html布局:上、中、下的结构布局的一个小例子 <!DOCTYPE html> <html><head lang= "en"><meta charset= "UTF-8"><title>MUC Manager </title><style type= "text/css">html,body {width :100 %; height:100 %; margin: 0 ;

二段提交协议、三段提交协议

1、二段提交协议 2pc 提交事务阶段------投票阶段 协调者发起事务请求到所有的参与者,参与者接收到事务请求后判断自身情况,如果不能执行事务,则反馈不能提交事务,返回NO,如果可以就执行事务,并将undo和redo信息记录事务日志中,反馈Yes 执行事务阶段 协调者收到所有参与者反馈Yes就发布commit命令,否则如果超时未收到或者收到NO 那么发布回滚命令。

校园圈子小程序,大学校园圈子,三段交付,源码交付,支持二开

介绍 在当今的数字化时代,校园社交媒体和在线论坛成为了学生交流思想、讨论问题以及分享信息的常用平台。特别是微信小程序,因其便捷性、用户基数庞大等特点,已逐渐成为构建校园社区不可或缺的一部分。以下是基于现有资料的校园小程序帖子发布功能的设计方案。 1.帖子类型与发布方式 校园小程序支持多种帖子类型,包括文字、图片、视频等,以满足不同用户的内容需求。帖子的发布可以通过简单的操作完成,例如点击上传

vue+vuex封装移动端三段布局组件(head、content、foot)

一、背景 这个布局组件的诞生契机来自于我们前端小组在两个月内同时进行三个H5项目时期,每个项目动辄20+个页面,简直让人秃头…… 基本上所有H5页面大抵都是三段式布局,头部和底部fixed布局,中间内容fixed可滚动,如下图;                  head                          content

Postgresql源码(123)事务提交时三段资源释放分析ResourceOwnerRelease

0 总结 三段释放原因:因为如果先释放锁,没有释放一些共享资源(比如pin住的buffer),别人拿到锁后发现我们仍然持有一些资源,就会有问题。所以三阶段释放主要是以锁为分界线,先释放锁保护的资源,在释放锁,在清理私有资源。这样可以保证别人拿到锁后,一定也能拿到对应的资源。三段:先放pinned buffer、relation、dsm这些共享资源;再放锁;所有放其他会话看不到的私有资源。 1

(M)UNITY三段攻击制作

三段攻击逻辑 基本逻辑: 人物点击攻击按钮进入攻击状态(bool isAttack) 在攻击状态下, 一旦设置的触发器(trigger attack)被触发,设置的计数器(int combo)查看目前攻击次数,如果>0,播放一段攻击;>1,二段攻击;>2,三段攻击。 对动画exit time的设置: 如果 AnimatorStateTransition.hasExitTime 为 tru

学习之道二— 十年大牛 三段分解提炼

首先我本人的问题就是,太急又想知道太多,导致没有在一个点上专注学习足够时间,最后每个领域都只是泛泛而谈,流于表面。大牛需要十年时间,现在我23岁,33岁才会是真正的大牛,不能太急。现在这个看似还有选择余地的时间点我总是在思考我要走什么路,总认为好像有什么路是我能用更少的力气走的更顺利的更适合我的,其实没有,这个已经很适合了,我应该专注的去做一些事情,停下来只能胡乱想些郁结的事情毫无用处,编程也可