面试题 65. 不用加减乘除做加法 题目描述 题目:写一个函数,求两个整数之和,要求在函数体内不得使用+.-.*./四则运算符号. Java 实现 public class Solution {     public int Add(int num1,int num2) {         while (num2!=0) {             int temp = num1^num2;             num2 = (num1&num2)<<1;             …
问题描述 写一个函数,求两个整数之和,要求在函数体内不得使用 "+"."-"."*"."/" 四则运算符号. 示例: 输入: a = 1, b = 1 输出: 2 提示: a, b 均可能是负数或 0 结果不会溢出 32 位整数 代码 ^ 亦或:相当于无进位的求和,想象10进制下的模拟情况:(如:19+1=20:无进位求和就是10,而非20:因为它不管进位情况) & 与:相当于求每位的进位数, 先看定义:1&1…
一.题目 写一个函数,求两个整数之和,要求在函数体内不得使用+.-.*./四则运算符号. 二.思路 1. 采用位运算的方法,分三步: (1).两个数异或:相当于每一位相加,而不考虑进位 (2).两个数相与,并左移一位:相当于求得进位 (3).重复步骤1和2,两个数相与的结果为0,和即为两个数异或的结果 2.例子演示:   3+11 = ?   13 的二进制      1 1 0 1                     -----a        13 11 的二进制      1 0 1…
在看<剑指Offer>过程中,面试题47不用加减乘除做加法,给出的思路是使用二进制的异或以及与运算,总之就是使用二进制.但是在使用Python实现的过程中,对于正整数是没有问题的,但是对于负数,会出现死循环情况.这是为什么呢?因为在Python中,对于超出32位的大整数,会自动进行大整数的转变,这就导致了在右移位过程中,不会出现移到了0的情况,也就会造成了死循环. 这里需要了解的是Python中整数实现的原理以及二进制中的移位等原理. 已经知道了右移过程中大整数的自动转化,导致变不成0,那么只…
题目:写一个函数,求两个整数之和,不得使用四则运算位运算. package com.gjjun.jzoffer; /** * 写一个函数,求两个整数之和,不得使用四则运算 * * @author gjjun * @date 2018/8/21 **/ public class Solution65 { public static void main(String[] args) { System.out.println(add(2,19)); } /** * 第一步异或,相同为0,不同为1,不产…
题目: 写一个函数,求两个整数之和,要求在函数体内不得使用+.-.*./四则运算符号. 思路: 很容易想到通过位运算来解决问题. 以5+17=22为例,参考十进制加法:1.只做各位相加不进位运算,即得到12,:2.做进位运算,即得到10,:3.把前面两个结果先相加,即得到22: 同样二进制加法也一样: 1.两个整数做异或^运算,得到各位相加不进位的运算结果: 2.两个整数做与&运算,然后再左移一位,即得到进位的运算结果: 3.将上面两个结果相加,即重复步骤1,2,直至进位的运算结果为0: 类似题…
问题描述 在一个 m*n 的棋盘的每一格都放有一个礼物,每个礼物都有一定的价值(价值大于 0).你可以从棋盘的左上角开始拿格子里的礼物,并每次向右或者向下移动一格.直到到达棋盘的右下角.给定一个棋盘及其上面的礼物的价值,请计算你最多能拿到多少价值的礼物?   示例 1: 输入: [   [1,3,1],   [1,5,1],   [4,2,1] ] 输出: 12 解释: 路径 1→3→5→2→1 可以拿到最多价值的礼物   提示: 0 < grid.length <= 200 0 < g…
<剑指Offer>是很多程序员面试前要看的书,但里面的算法都是基于C++实现的,最近用了三周左右时间,用Python完成了里面几乎所有的算法题,由于时间以及个人水平均有限,或许会有部分问题没有发现,希望大家发现后能指出,在此感谢大家!也希望我写的东西能对大家有一点帮助.所有源代码请在这里获取. Python-Offer的主要特点简介如下: 所有题目按照书中章节排列,便于查询: 每个题目单独一个文件,文件可以直接运行,便于测试以及查看结果: 作为2的补充,对于二叉树和单链表这种类型的题目,文件中…
剑指Offer学习 剑指Offer这本书已经学习完了.从中也学习到了不少的东西,如今做一个总的文件夹.供自已和大家一起參考.学如逆水行舟.不进则退.仅仅有不断地学习才干跟上时候.跟得上技术的潮流! 全部代码下载[https://github.com/Wang-Jun-Chao/coding-interviews] 文件夹 第01-10题 [剑指Offer学习][面试题02:实现Singleton 模式--七种实现方式] [剑指Offer学习][面试题03:二维数组中的查找] [剑指Offer学习…
剑指Offer学习 剑指Offer这本书已经学习完了,从中也学习到了不少的东西,现在做一个总的目录,供自已和大家一起参考,学如逆水行舟,不进则退.只有不断地学习才能跟上时候,跟得上技术的潮流! 所有代码下载[https://github.com/Wang-Jun-Chao/coding-interviews] 目录 第01-10题 [剑指Offer学习][面试题02:实现Singleton 模式——七种实现方式] [剑指Offer学习][面试题03:二维数组中的查找] [剑指Offer学习][面…