`
aawty
  • 浏览: 32915 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论

突然想到第一次面试的交换两个数据问题

阅读更多
今天读Java解惑想起第一次面试经历,很惨,碰了很多灰,不得不说是人家技术总监技术过硬。当时的第一个小问题是:不要中间变量,怎么交换两个数据。当时是脑子一片空白,只记得自己以前研究过。现在想想知道了三个方法,不过人家说是四个,我打算自己仔细研究,不要败在基础上。

第一个:很经典的异或方法:b = b^a^b;a =a^b^a;

第二个:加减:a = a+b-a;b= b+a-b;(这里会有溢出);

第三个:乘除:a = a*b/a;b= b*a/b;(同上);

在找另一个方法。
分享到:
评论

相关推荐

    C语言在不创建变量的情况下,交换两个变量的数据(面试题)

    在C语言中,交换两个变量的数据是一个常见的编程问题,尤其在面试中经常出现。这个问题的挑战在于如何在不创建额外变量的情况下完成交换。通常,我们使用一个临时变量来存储其中一个变量的值,然后将另一个变量的值...

    每日一题:不适用第三个变量,实现交换两个输入参数1

    // 交换两个数据,但是不适用第三个变量 void swap(int* a, int* b) { *b = (*a) ^ (*b); // 第一步:a XOR b 存储在 b 中 *a = (*a) ^ (*b); // 第二步:a XOR (原b) 存储在 a 中,此时 a 的值变为原 b 的值 *b ...

    算法大全-面试题-数据结构

    第一次遍历获取链表的长度,第二次遍历时定位到倒数第4个元素并返回。 3. 找出单链表的中间元素: - 快慢指针法:一个指针每次移动一步,另一个指针每次移动两步。当快指针到达末尾时,慢指针正好位于中间位置。 ...

    python-leetcode面试题解之第24题两两交换链表中的节点-python题解.zip

    在循环内部,我们将当前节点的下一个节点保存在一个临时变量中,然后将当前节点的next指向前一个节点,完成一次交换。最后,更新前一个节点为当前节点,并将当前节点移动到临时节点。这样,每次迭代都会交换相邻的两...

    2019保研数据结构领域复试面试题目参考.pdf

    满二叉树是指除了最后一层外,每一层上的所有结点都有两个子结点的二叉树。对于深度为5的满二叉树,叶子结点的个数为 \(2^{(5-1)} = 16\)。 **9. 具有3个结点的二叉树有多少种不同的形态?** 对于3个结点的二叉树...

    面试---10. 数据结构与算法.pdf

    - 问题描述:给定两个字符串,判断第二个字符串是否为第一个字符串的旋转词。 - 解决方案:首先检查两字符串长度是否相等;然后创建一个新的字符串,内容为原字符串拼接自身;最后使用KMP算法或其他字符串匹配算法...

    C/C++程序员面试指南.杨国祥(带详细书签).pdf

    问题六:“谈一谈你的一次失败经历。” 问题七:“你为什么选择我们公司?” 问题八:“对这项工作,你可预见到哪些困难?” 问题九:“如果我们录用你,你将怎样开展工作?” 问题十:“与上级意见不一致,你将...

    TCP三次握手和四次挥手面试题详解.pdf

    1. 第一次挥手:客户端决定不再发送数据时,会发送一个带有FIN(结束)标志的数据包给服务器,请求关闭连接。此时客户端进入FIN_WAIT_1状态。 2. 第二次挥手:服务器收到FIN请求后,发送一个带有ACK标志的数据包给...

    .net面试企业常问问题

    9. 在 c# 中 using 和 new 这两个关键字有什么意义? using 关键字用于指定一个代码块,在块结束时自动释放资源。new 关键字用于创建一个新的对象实例。 10. override 与重载的区别 override 和重载都是多态性的...

    程序员面试智力题(面试前必看)

    第一次抓取一个,第二次无论抓取什么颜色都会与第一次的颜色不同,第三次抓取时必然与前两次中的某一次颜色相同。因此,最少需要抓取三次,即4个果冻。 #### 喝啤酒问题 **题目**: 每三个空啤酒瓶可以兑换一瓶啤酒...

    字节前端第一期面试题(1).pdf

    而parseInt接收两个参数,第一个是字符串,第二个是基数,因此在map中使用parseInt时,第二个参数(数组的索引)会干扰基数参数。 3. 防抖(debounce)和节流(throttle)的区别及实现: 防抖指的是在事件被触发n秒...

    算法,面试题

    - **原理**: 参考判断两个单链表是否相交的方法,找到第一个相交节点。 - **步骤**: 1. 遍历两个链表,确定哪个链表更长。 2. 调整起点,使两个链表的剩余长度相同。 3. 同时遍历两个链表,找到第一个相交节点。 ...

    计算机网络面试问题.pdf

    具体步骤包括:第一次挥手,客户端发送一个带有FIN标志位的报文段,用来关闭客户端到服务器的数据传送,并进入FIN_WAIT_1状态;第二次挥手,服务器收到客户端的FIN报文后,发送一个带有ACK标志位的报文段作为回应,...

    .NET面试常见问题

    冒泡排序是一种简单的排序算法,通过重复遍历待排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。遍历数列的工作是重复进行的,直到没有再需要交换,也就是说该数列已经排序完成。 #### 9\. C#...

    微软等公司数据结构+算法面试第1-80题汇总

    - 灯泡与开关的问题通常需要一次性操作每个开关,然后根据灯的状态确定开关对应关系。 - 金条分割问题,可以将金条切为1、2、4三块,满足任何7天的需求。 - 链表翻转可以使用迭代方法,通过三个指针交替交换节点...

    CGB_面试题_第一阶段.docx

    在类加载时,静态属性被初始化,只分配一次内存。 - 静态方法:同样属于类,可以直接通过类名调用,无法访问非静态成员(包括方法和属性)。非静态方法可以调用静态方法和访问静态属性,因为它们在同一个类的上下...

    TCP,UDP,Socket,Http网络编程面试题 47道.pdf

    在网络编程中,发起连接程序,也就是发送第一次请求的程序,被称作客户端(Client),等待其他程序连接的程序被称作服务器(Server)。 二、TCP 和 UDP 的区别 TCP 等于和陌生人打电话处理事情,UDP 等于发广播。...

    程序员面试之无敌天书

    - **问题描述**:给定一个字符串,找到第一个只出现一次的字符。 - **解决方案**:可以先遍历字符串统计每个字符出现的次数,然后再遍历一遍字符串,找到第一个出现次数为1的字符。 **14. 约瑟夫环问题** - **问题...

Global site tag (gtag.js) - Google Analytics