in-place操作

  在刷编程题的时候,可能大家也经常遇到题目要求do in-place。起初并未在意,主要是即使没有按照要求实现,也可以AC,但总觉得有些投机取巧的嫌疑。所以就上网搜了相关概念,简单总结一下。

  in-place操作,意思是所有的操作都是”就地“操作,不允许进行移动,或者称作 原位操作,即不允许使用临时变量。

  举个例子,大家经常写也经常用到的"交换两个数的值":

// 设置初始值
int x = 1,y = 2;

1)最先想到的方法,就是设置中间变量

// 设置中间变量
int temp;
temp = x;
x = y;
y = temp;

2)然而要满足in-place的要求,就需要另辟蹊径了。比如通过加减运算实现(但是可能会出现溢出)

// 加减运算
x = x + y;
y = x - y;
x = x - y;

3)通过异或操作实现

// 异或运算
x = x ^ y;
y = x ^ y;
x = x ^ y;

------至所有正在努力奋斗的程序猿们!加油!!
有码走遍天下 无码寸步难行
1024 - 梦想,永不止步!
爱编程 不爱Bug
爱加班 不爱黑眼圈
固执 但不偏执
疯狂 但不疯癫
生活里的菜鸟
工作中的大神
身怀宝藏,一心憧憬星辰大海
追求极致,目标始于高山之巅
一群怀揣好奇,梦想改变世界的孩子
一群追日逐浪,正在改变世界的极客
你们用最美的语言,诠释着科技的力量
你们用极速的创新,引领着时代的变迁

——乐于分享,共同进步,欢迎补充
——Treat Warnings As Errors
——Any comments greatly appreciated
——Talking is cheap, show me the code
——诚心欢迎各位交流讨论!QQ:1138517609
——CSDN:https://blog.csdn.net/u011489043
——简书:https://www.jianshu.com/u/4968682d58d1
——GitHub:https://github.com/selfconzrr

©️2020 CSDN 皮肤主题: 点我我会动 设计师: 上身试试 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值