一、题目 写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。 二、思路 1、 采用位运算的方法,分三步: (1)、两个数异或:相当于每一位相加,而不考虑进位 (2)、两个数相与,并…
分类:剑指offer六十道题解
剑指offer四十七之求1+2+3+...+n
一、题目 求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。 二、思路 1.需利用逻辑与的短路特性实现递归终止。…
剑指offer四十六之孩子们的游戏(圆圈中最后剩下的数,约瑟夫环问题)
一、题目 每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此。HF作为牛客的资深元老,自然也准备了一些小游戏。其中,有个游戏是这样的:首先,让小朋友们围成一个大圈。然后,他随机指定一个数m,让编…
剑指offer四十五之扑克牌顺子(序列是否连续)
一、题目 LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张^_^)…他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定去买体…
剑指offer四十四之翻转单词顺序列
一、题目 牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I…
剑指offer四十三之左旋转字符串
一、题目 汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,…
剑指offer四十二之和为S的两个数字
一、题目 输入一个递增排序的数组和一个数字S,在数组中查找两个数,是的他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。 二、思路 数列满足递增,设两个头尾两个指针i和j,若ai + aj &g…
剑指offer四十一之和为S的连续正数序列
一、题目 题目描述:小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多…
剑指offer四十之数组中只出现一次的数字
一、题目 一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。 二、思路 建一个hashMap,统计各数字出现的次数,然后遍历hashMap,输出出…
剑指offer三十九之平衡二叉树
一、题目 输入一棵二叉树,判断该二叉树是否是平衡二叉树。 二、思路 详解代码。 三、代码 public class Solution { &…
剑指offer三十八之二叉树的深度
一、题目 输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。 二、思路 递归,详见代码。 三、代码 public class&nbs…
剑指offer三十七之数字在排序数组中出现的次数
一、题目 统计一个数字在排序数组中出现的次数。 二、思路 解法一:遍历数组计数 解法二:考虑到时有序数组,所以采用分查找,找到第一个K 和 最后一个K的位置, 二者相减。 三、代码 解法一: public int G…