首页 > 其他分享 >在不使用内置函数和中间变量的情况交换数字LeetCode力扣题解面试题16.01

在不使用内置函数和中间变量的情况交换数字LeetCode力扣题解面试题16.01

时间:2023-12-29 09:57:22浏览次数:25  
标签:面试题 return int 题解 16.01 Solution numbers swapNumbers Vec

#异或法
#Kotlin

```Kotlin
class Solution {
    fun swapNumbers(numbers: IntArray): IntArray {
        numbers[0] = numbers[0] xor numbers[1]
        numbers[1] = numbers[1] xor numbers[0]
        numbers[0] = numbers[0] xor numbers[1]
        return numbers
  }
}
```
#Java

class Solution {
public int[] swapNumbers(int[] numbers) {
        numbers[0]^=numbers[1];
        numbers[1]^=numbers[0];
        numbers[0]^=numbers[1];
        return numbers;
  }
}

#Scala

object Solution {
def swapNumbers(numbers: Array[Int]): Array[Int] = {
    numbers(0)^= numbers(1)
    numbers(1)^= numbers(0)
    numbers(0)^= numbers(1)
    numbers
  }
}  

#C

int* swapNumbers(int* numbers, int numbersSize, int* returnSize)
{

     *returnSize=2;

      numbers[0]^=numbers[1];

      numbers[1]^=numbers[0];

      numbers[0]^=numbers[1];

      return numbers;

}

#Rust

````Rust
impl Solution {
pub fn swap_numbers(mut numbers: Vec<i32>) -> Vec<i32> {
        numbers[0] ^= numbers[1];
        numbers[1] ^= numbers[0];
        numbers[0] ^= numbers[1];
        numbers
  }
}
````
加减法
#Kotlin
```Kotlin
class Solution {
fun swapNumbers(numbers: IntArray): IntArray {

        numbers[0] = numbers[0] -numbers[1]
        numbers[1] = numbers[1] +numbers[0]
        numbers[0] = numbers[0] -numbers[1]
        return numbers

  }
}
```
#Java

class Solution {   
 public int[] swapNumbers(int[] numbers) {       
    numbers[0] = numbers[0] -numbers[1] ;      
    numbers[1] = numbers[1] +numbers[0] ;        
    numbers[0] = numbers[0] -numbers[1]  ;            
    return numbers;        
   }
 }

#Scala

object Solution { 
def swapNumbers(numbers: Array[Int]): Array[Int] = {    numbers(1) = numbers(1) - numbers(0)   
     numbers(0) = numbers(0) + numbers(1)    
     numbers(1) = numbers(0) - numbers(1)   
     numbers(0) = numbers(0) - numbers(1)   
     numbers  
  }
} 

#C
由于使用int取值范围会越界产生溢出,所以使用无符号类型
```C

/**incle * Note: The returned array must be malloced, assume caller calls free(). */
int* swapNumbers
(unsigned int* numbers, unsigned int numbersSize, int* returnSize)
{
    numbers[1] = numbers[1] - numbers[0];   
       numbers[0] = numbers[0] + numbers[1];     
       numbers[1] = numbers[0] - numbers[1];   
       *returnSize = 2;     
       return numbers;
}

#Rust
```Rust
impl Solution {
pub fn swap_numbers(numbers: Vec<i32>) -> Vec<i32> {
let mut numbers = numbers;
          numbers[0] = numbers[0] + numbers[1];
          numbers[1] = numbers[0] - numbers[1];
          numbers[0] = numbers[0] - numbers[1];
          numbers
  }
}
```


版权声明:本文原来写于CSDN博主「KloseYu 11也就是我的CSDN」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_46059871/article/details/134399399

 

标签:面试题,return,int,题解,16.01,Solution,numbers,swapNumbers,Vec
From: https://www.cnblogs.com/KloseYu/p/17872131.html

相关文章

  • AT_joisc2015_h 题解
    传送门题意:给定长为\(n\)的字符串\(s\),你可以选择一个区间,将区间内的字符从小到大排序,求可以得到的最长回文子串长度,字符集大小为\(n\)。很有意思的题目。首先容易做到\(O(n^3)\)。考虑怎么优化。我们先考察排序的区间和回文区间的关系。如果两个区间无交,那么显然排序......
  • CF1835C Twin Clusters 题解
    题目链接点击打开链接题目解法很牛逼的构造题好像随也可以过长度为\(2^{k+1}\)的序列的不同区间有\(2^{2k+1}\)个,值域是\(4^k\),所以一定有解将\(a\)做一遍前缀和,那么问题转化成了找\(s_{r1}\opluss_{l1-1}=s_{r2}\opluss_{l2-1}\)先讲一讲具体做法:按照前\(k\)......
  • ICPC2021Kunming G Glass Bead Game 题解
    QuestionICPC2021KunmingGGlassBeadGame有\(n\)个玻璃珠,\(B_1,B_2,\cdots,B_n\)每一步你可以选择一个\(B_i\)移道第一个位置上,花费的代价为操作前\(B_i\)前面的玻璃珠的个数。已知每一步选择玻璃珠\(B_i\)的概率\(p_i\),问当\(m\rightarrow\infty\)时,在第\(......
  • ICPC2021Kunming G Find the Maximum 题解
    QuestionFindtheMaximum给出一个树,每个点有一个权值\(b_n\),求一条树上路径\(V\),要求\(\frac{\sum_{u\inV(-x^2+b_ux)}}{|V|}\)最大,其中\(x\)是自己选择的一个树Solution先转化一下\(\frac{\sum_{u\inV(-x^2+b_ux)}}{|V|}\),得到\[\frac{\sum_{u\inV(-x^2+b_......
  • 解密社招面试题:“new”一个对象究竟会产生多少字节?
    尊敬的小伙伴们,大家好!在程序员的职业生涯中,面试无疑是一次又一次的挑战。这些挑战中,总有一些问题会让我们略感头疼,今天小米就来和大家聊一聊,社招面试中经常被问到的一个问题:“new”一个对象究竟会产生多少字节?这个问题看似简单,实际上涉及到了许多底层的原理,而在我们日常开发中,也有......
  • vue前端node内存溢出问题解决
    前端项目运行时,如果经常运行慢,崩溃停止服务,报如下错误:FATALERROR:CALL_AND_RETRY_LASTAllocationfailed-JavaScriptheapoutofmemory(JavaScript堆内存不足) 原因:因为在Node中,通过JavaScript使用内存时只能使用部分内存(64位系统:1.4GB,32位系统:0.7GB),这个时候,如......
  • 2023最新中级难度Fast API面试题,包含答案。刷题必备!记录一下。
    好记性不如烂笔头内容来自[面试宝典-中级难度FastAPI面试题合集](https://offer.houxu6.top/tag/FastAPI)问:FastAPI是一个基于HTTP协议的PythonWeb框架,请问FastAPI有哪些特点和优势?FastAPI是一个现代、高性能的PythonWeb框架,用于构建RESTfulAPI和Web服务。以下是Fas......
  • 2023最新高级难度Fast API面试题,包含答案。刷题必备!记录一下。
    好记性不如烂笔头内容来自[面试宝典-高级难度FastAPI面试题合集](https://offer.houxu6.top/tag/FastAPI)问:请简述FastAPI的优缺点,并给出一些应用场景。FastAPI是一个现代、快速且高性能的PythonWeb框架,用于构建RESTfulAPI和Web应用。它基于标准的Python类......
  • openssh升级对应问题解决方案
    问题1:./openssl:errorwhileloadingsharedlibraries:libssl.so.1.1:cannotopensharedobjectfile:Nosuchfileordirectory解决方案:cp/usr/local/openssl1.1.1/lib/libssl.so.1.1/lib64/cp/home/tydl/openssl-1.1.1u/libcrypto.so.1.1/lib64/ 问题2:/etc/ssh/s......
  • 「题解」Codeforces 1427G One Billion Shades of Grey
    感谢127的指导/ll\(|h_u-h_v|=\max(0,h_u-h_v)+\max(0,h_v-h_u)\),那么可以把它看成这样的问题:\[\min\{\sum_{(u,v)}\max(0,h_u-h_v+w_{u,v})c_{u,v}\}\]对偶一下,问题就变为:如果两个格子相邻就互相连容量为\(c_{u,v}=1\),费用为\(w_{u,v}=0\)的边,跑最大费用循环流。为了限......