当前位置: 首页 > news >正文

LeetCode 面试题 16.01. 交换数字

文章目录

  • 一、题目
  • 二、C# 题解

一、题目

  编写一个函数,不用临时变量,直接交换 numbers = [a, b]ab 的值。

示例:

输入: numbers = [1,2]
输出: [2,1]

提示:

  • numbers.length == 2
  • -2147483647 <= numbers[i] <= 2147483647

  点击此处跳转题目。

二、C# 题解

  恰逢前两天看到过位运算的方法,这里刚好用上了哈哈。使用异或操作可以交换两个 int 型变量的值而无需临时变量,异或满足交换律与结合律,具体运算如下:

1 ⊕ 1 = 0 1 ⊕ 0 = 1 0 ⊕ 1 = 1 0 ⊕ 0 = 0 \begin{array}{c} &1\oplus1=0\\ &1\oplus0=1\\ &0\oplus1=1\\ &0\oplus0=0\\ \end{array} 11=010=101=100=0

  可以发现,两个相同的数异或结果均为 0:
1 ⊕ 1 = 0 0 ⊕ 0 = 0 \begin{array}{c} &1\oplus1=0\\ &0\oplus0=0\\ \end{array} 11=000=0

  1/0和0异或结果均不变:
1 ⊕ 0 = 1 0 ⊕ 0 = 0 \begin{array}{c} &1\oplus0=1\\ &0\oplus0=0\\ \end{array} 10=100=0

  因此,对于整数 a 进行异或运算,有如下性质:
a ⊕ a = 0 a ⊕ 0 = a \begin{array}{c} a\oplus a = 0\\ a\oplus 0 = a\\ \end{array} aa=0a0=a

  给定两个整数 a 和 b,进行如下操作:

a ′ = a ⊕ b b ′ = a ′ ⊕ b = a ⊕ b ⊕ b = a ⊕ 0 = a a ′ ′ = a ′ ⊕ b ′ = a ′ ⊕ a = a ⊕ b ⊕ a = a ⊕ a ⊕ b = 0 ⊕ b = b \begin{aligned} &a'=a\oplus b\\ &b'=a'\oplus b=a\oplus b\oplus b=a\oplus 0=a\\ &a''=a'\oplus b'=a'\oplus a=a\oplus b\oplus a=a\oplus a\oplus b=0\oplus b = b \end{aligned} a=abb=ab=abb=a0=aa′′=ab=aa=aba=aab=0b=b

  因此,给出代码如下(很整齐的代码hh):

public class Solution {public int[] SwapNumbers(int[] numbers) {numbers[0] = numbers[0] ^ numbers[1];numbers[1] = numbers[0] ^ numbers[1];numbers[0] = numbers[0] ^ numbers[1];return numbers;}
}
  • 时间:112 ms,击败 100.00% 使用 C# 的用户
  • 内存:40.30 MB,击败 100.00% 使用 C# 的用户

  当然,实际使用时不建议这样写,因为可读性太差。这里只是为了做题~

相关文章:

LeetCode 面试题 16.01. 交换数字

文章目录 一、题目二、C# 题解 一、题目 编写一个函数&#xff0c;不用临时变量&#xff0c;直接交换 numbers [a, b] 中 a 与 b 的值。 示例&#xff1a; 输入: numbers [1,2] 输出: [2,1] 提示&#xff1a; numbers.length 2-2147483647 < numbers[i] < 214748364…...

手机apn介绍

公司遇到一件很棘手的事情&#xff0c;app发版之后&#xff0c;长江以北地方的用户网络信号很好&#xff0c;但是打开app之后网络连接不上&#xff0c;而长江以南的用户网络却很好。大家找了很多资料&#xff0c;提出一些方案&#xff1a; 1、是不是运营商把我们公司的ip给限制…...

垃圾回收系统小程序

在当今社会&#xff0c;废品回收不仅有利于环境保护&#xff0c;也有利于资源的再利用。随着互联网技术的发展&#xff0c;个人废品回收也可以通过小程序来实现。本文将介绍如何使用乔拓云网制作个人废品回收小程序。 1. 找一个合适的第三方制作平台/工具&#xff0c;比如乔拓云…...

【随机过程】布朗运动

这里写目录标题 Brownian motion Brownian motion The brownian motion 1D and brownian motion 2D functions, written with the cumsum command and without for loops, are used to generate a one-dimensional and two-dimensional Brownian motion, respectively. 使用cu…...

基于机器视觉的车道线检测 计算机竞赛

文章目录 1 前言2 先上成果3 车道线4 问题抽象(建立模型)5 帧掩码(Frame Mask)6 车道检测的图像预处理7 图像阈值化8 霍夫线变换9 实现车道检测9.1 帧掩码创建9.2 图像预处理9.2.1 图像阈值化9.2.2 霍夫线变换 最后 1 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分…...

C语言文件读写,文件相关操作

文章目录 C语言文件读写&#xff0c;文件相关操作1.C语言万物皆是地址&#xff0c;文件读操作2.文件的写3.文件的复制4.获取文件的大小5.文件的加密解密 C语言文件读写&#xff0c;文件相关操作 1.C语言万物皆是地址&#xff0c;文件读操作 // // Created by MagicBook on 20…...

竞赛选题 深度学习卷积神经网络的花卉识别

文章目录 0 前言1 项目背景2 花卉识别的基本原理3 算法实现3.1 预处理3.2 特征提取和选择3.3 分类器设计和决策3.4 卷积神经网络基本原理 4 算法实现4.1 花卉图像数据4.2 模块组成 5 项目执行结果6 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 基…...

CMake教程 - basic point

CMake教程 - basic point 1 - Building a Basic Project 最基本的CMake项目是由单个源代码文件构建的可执行文件。对于像这样简单的项目&#xff0c;只需要一个带有三个命令的CMakeLists.txt文件。 注意&#xff1a;尽管CMake支持大写、小写和混合大小写命令&#xff0c;但小…...

day52--动态规划11

想死&#xff0c;但感觉死的另有其人&#xff0c;&#xff0c;怎么还在动态规划&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 123.买卖股票的最佳时机III 188.买卖股票的最佳时机IV 第一题&#xff1a;买卖股票的最佳时机III 给定一个数组&#xff0c;它…...

Jenkins入门级安装部署

前言 Jenkins是一个开源软件项目&#xff0c;是基于Java开发的一种持续集成工具&#xff0c;用于监控持续重复的工作&#xff0c;旨在提供一个开放易用的软件平台&#xff0c;使软件项目可以进行持续集成。通常&#xff0c;项目中常用Jenkins作为编译打包项目的工具&#xff0…...

tcpdump 异常错误

tcpdump 进行抓包的时候&#xff0c;-w 提示 Permission denied&#xff1a; sudo tcpdump -w test1.log tcpdump: test1.log: Permission denied 开始以为是用户权限的问题&#xff0c;后来换用 root 账户还是不行&#xff0c;经搜索&#xff0c;是 AppArmor 的问题。 解决方…...

如何绘制【逻辑回归】中threshold参数的学习曲线

threshold参数的意义是通过筛选掉低于threshold的参数&#xff0c;来对逻辑回归的特征进行降维。 首先导入相应的模块&#xff1a; from sklearn.linear_model import LogisticRegression as LR from sklearn.datasets import load_breast_cancer from sklearn.model_selecti…...

4.1 数据库安全性概述

思维导图&#xff1a; 前言&#xff1a; - **第一章回顾**&#xff1a;数据库特点 - 统一的数据保护功能&#xff0c;确保数据安全、可靠、正确有效。 - 数据保护主要涵盖&#xff1a; 1. **数据的安全性**&#xff08;本章焦点&#xff09; 2. 数据的完整性&#xff08;第…...

tftp服务的搭建

TFTP服务的搭建 1 先更新一下apt包 sudo apt-get update2 服务器端(虚拟机上)安装 TFTP相关软件 sudo apt-get install xinetd tftp tftpd -y3 创建TFTP共享目录 mkdir tftp_sharetftp_shaer的路径是/home/cwz/tftp_share 3.1 修改共享目录的权限 sudo chmod -R 777 tftp…...

c语言简介

C 语言最初是作为 Unix 系统的开发工具而发明的。 1969年&#xff0c;美国贝尔实验室的肯汤普森&#xff08;Ken Thompson&#xff09;与丹尼斯里奇&#xff08;Dennis Ritchie&#xff09;一起开发了 Unix 操作系统。Unix 是用汇编语言写的&#xff0c;无法移植到其他计算机&…...

OpenLayers.js 入门教程:打造互动地图的入门指南

本文简介 戴尬猴&#xff0c;我是德育处主任 本文介绍如何使用 OpenLayers.js &#xff08;后面简称 ol&#xff09;。ol 是一个开源 JavaScript 库&#xff0c;可用于在Web页面上创建交互式地图。 ol能帮助我们在浏览器轻松地使用地图功能&#xff0c;例如地图缩放、地图拖动…...

黑马头条:app端文章查看

黑马头条&#xff1a;app端文章查看 黑马头条&#xff1a;app端文章查看文章列表加载1. 需求分析2. 表结构分析3. 导入文章数据库3.1 导入数据库3.2 导入对应的实体类 4. 实现思路5. 接口定义6. 功能实现6.1&#xff1a;导入heima-leadnews-article微服务&#xff0c;资料在当天…...

常见使用总结篇(一)

Autowired和Resource注解的区别 Autowired注解是Spring提供的&#xff0c;Resource注解是J2EE本身提供Autowird注解默认通过byType方式注入(没有匹配会通过byName方式)&#xff0c;而Resource注解默认通过byName方式注入(没有匹配会通过byType方式)Autowired注解注入的对象需要…...

【软考系统架构设计师】2023年系统架构师冲刺模拟习题之《数据库系统》

在数据库章节中可能会考察以下内容&#xff1a; 文章目录 数据库完整性约束&#x1f31f;数据库模式&#x1f31f;&#x1f31f;ER模式&#x1f31f;关系代数&#x1f31f;&#x1f31f;并发控制&#x1f31f;数据仓库与数据挖掘&#x1f31f;&#x1f31f;反规范化技术&#x…...

北邮22级信通院数电:Verilog-FPGA(7)第七周实验(1):带使能端的38译码器全加器(关注我的uu们加群咯~)

北邮22信通一枚~ 跟随课程进度更新北邮信通院数字系统设计的笔记、代码和文章 持续关注作者 迎接数电实验学习~ 获取更多文章&#xff0c;请访问专栏&#xff1a; 北邮22级信通院数电实验_青山如墨雨如画的博客-CSDN博客 关注作者的uu们可以进群啦~ 目录 方法一&#xff…...

SIT3491ISO具有隔离功能,256 节点,全双工 RS422/RS485 芯片

SIT3491ISO 是一款电容隔离的全双工 RS-422/485 收发器&#xff0c;总线端口 ESD 保护能力 HBM 达到 15kV 以上&#xff0c;功能完全满足 EIA-422 以及 TIA/EIA-485 标准要求的 RS-422/485 收发器。 SIT3491ISO 包括一个驱动器和一个接收器&#xff0c;两者均…...

在windows服务器上部署一个单机项目以及前后端分离项目

目录 一. 单机项目在windows服务器上的部署 1.1 在本机上测试项目无误 1.1.1 在数据库中测试sql文件没问题 1.1.2 在tomcat中测试war文件无误 1.1.3 测试完成后&#xff0c;进入浏览器运行单机项目确保无误 1.2 在windows服务器中运行项目 二. 前后端分离项目在服务器上…...

使用jdbc技术,在数据库中存储大数据对象(使用字节IO流读取图片等给blob等二进制类型数据赋值)

在MySQL中&#xff0c;BLOB是一种数据类型&#xff0c;代表二进制大对象&#xff08;Binary Large Object&#xff09;&#xff0c;可以存储大量的二进制数据&#xff0c;如图像、声音、视频等。BLOB类型的数据在存储和检索时会以二进制方式进行处理&#xff0c;而不是字符方式…...

统计学习方法 支持向量机(下)

文章目录 统计学习方法 支持向量机&#xff08;下&#xff09;非线性支持向量机与和核函数核技巧正定核常用核函数非线性 SVM 序列最小最优化算法两个变量二次规划的求解方法变量的选择方法SMO 算法 统计学习方法 支持向量机&#xff08;下&#xff09; 学习李航的《统计学习方…...

【python】如何注释

一&#xff1a;通过#注释行 #这个是个注释 print(hello world) 二&#xff1a;通过或"""注释段落 这个注释段落 这是注释段落 这是注释段落print(hello world) """ 这是多行注释&#xff0c;用三个双引号 这是多行注释&#xff0c;用三个双引…...

C++——C++入门(二)

C 前言一、引用引用概念引用特性常引用使用场景传值、传引用效率比较值和引用的作为返回值类型的性能比较 引用和指针的区别 二、内联函数概念特性知识点提升 三、auto关键字类型别名思考auto简介auto的使用细则auto不能推导的场景 四、基于范围的for循环范围for的语法范围for的…...

容联七陌百度营销通BCP解决方案,让营销更精准

百度营销通作为一个快速迭代、满足客户多元化营销需求的高效率营销工具成为众多企业的选择&#xff0c;通过百度营销通BCP对接&#xff0c;企业就可以在百度咨询页接入会话&#xff0c;收集百度来源的访客搜索关键词&#xff0c;通过百度推广获取更多的精准客户&#xff0c;从而…...

Transformer模型 | 用于目标检测的视觉Transformers训练策略

基于视觉的Transformer在预测准确的3D边界盒方面在自动驾驶感知模块中显示出巨大的应用,因为它具有强大的建模视觉特征之间远程依赖关系的能力。然而,最初为语言模型设计的变形金刚主要关注的是性能准确性,而不是推理时间预算。对于像自动驾驶这样的安全关键系统,车载计算机…...

贪心区间类题目

一、先排序 1、一般统计有几个重复区间、判断是否有重复区间&#xff0c;对右边界经行排序。 2、合并区间&#xff0c;对左边界经行排序&#xff0c;且尽量想到先放入一个元素到res中&#xff0c;然后不断更新res的右边界 二、判断重复 判断i是否和i-1重复&#xff0c;如果…...

npm改变npm缓存路径和改变环境变量

在安装nodejs时&#xff0c;系统会自动安装在系统盘C&#xff0c; 时间久了经常会遇到C盘爆满&#xff0c;有时候出现红色&#xff0c;此时才发现很多时候是因为npm 缓存保存在C盘导致的&#xff0c;下面就介绍下如何改变npm缓存路径。 1、首先找到安装nodejs的路径&#xff0c…...