in-place

刷编程题的时候,经常遇到题目要求do in-place。所以就上网搜了相关概念,简单总结一下。

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

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

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

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

  1. //设置临时变量
  2. int temp;
  3. temp = x;
  4. x = y;
  5. y = temp;

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

  1. //加减运算
  2. x = x + y;
  3. y = x - y;
  4. x = x - y;

3)通过异或操作实现

  1. //异或运算
  2. x = x ^ y;
  3. y = x ^ y;
  4. x = x ^ y;

随机推荐

  1. java如何调用服务端的WSDL接口

    如何使用http://192.168.0.170:8090/kaoshi?wsdl调用服务端暴露在外面可以使用的接口 1.首先创建调用ws的web项目,就一个普通的web项目就行: 2.通过eclip ...

  2. 前端-页面性能调试:Hiper

    前端-页面性能调试:Hiper   我们写单页面应用,想看页面修改后性能变更其实挺繁琐的.有时想知道是「正优化」还是「负优化」只能靠手动刷新查看network.而Hiper很好解决了这一痛点(其实Hi ...

  3. 原生ajax瀑布流demo

    最近听朋友们说起瀑布流挺多的,自己就去研究下了,一个简单的原生demo,分享给大家... 简单分为三个文档,有详细的注释:img:ajax.php:demo.php 其中img文件夹中放入图片 1.j ...

  4. IOS防作弊产品技术原理分析

    由于时间和水平有限,本文会存在诸多不足,希望得到您的及时反馈与指正,多谢! 工具环境: iPhone 6.系统版本 10.1.1IDA Pro 7.0 0x00:防作弊产品介绍 1.由于IOS系统的不 ...

  5. weblogic 忘记控制台账号密码 进行重新设置

    第一步:首先要关闭weblogic服务. 第二步:对一些重要的文件进行备份: 1. 为了保证操作安全,备份%DOMAIN_HOME%/security/DefaultAuthenticatorInit ...

  6. 数据字典的设计--3.首页添加删除表格(JS实现)

    页面效果: JS代码: 1.添加表格 function insertRows(){ //获取表格对象 var tb1 = $("#dictTbl"); var tempRow = ...

  7. 解决“SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT 'OpenRowset/OpenDatasource' 的访问……”【转】

    SQL Server 阻止了对组件 /'Ad Hoc Distributed Queries/' 的访问 在Sql Server中查询一下Excel文件的时候出现问题: SELECT *  FROM ...

  8. hbase查询语法

    1.scan '表名',{FILTER=>"PrefixFilter('rowkey值')"} scan 'useractions',{FILTER=>"Pr ...

  9. cms-详细页面-3

    1.设置上一条.下一条数据 2.使用昌言插件 3.点击链接帖子的访问数加一 1.在mapper中设置分页: <?xml version="1.0" encoding=&quo ...

  10. oracle数据类型及操作

    1. Oracle字符串操作 1.1 字符串类型 Ø CHAR和VARCHAR2类型 l CHAR存放定长字符,如果数据存不满指定长度则用空格补齐,CHAR类型浪费空间换取查询时间的缩短. l VAR ...