一、题目 输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。 二、思路 我们以三个字…
标签:剑指offer六十道题解
剑指offer四十九之把字符串转换成整数
一、题目 将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0 二、思路 详见代码。 三、代码 public class Solution { publi…
剑指offer五十三之表示数值的字符串
一、题目 请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串”+100″,”5e2″,”-123″,”3.14…
剑指offer四十六之孩子们的游戏(圆圈中最后剩下的数,约瑟夫环问题)
一、题目 每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此。HF作为牛客的资深元老,自然也准备了一些小游戏。其中,有个游戏是这样的:首先,让小朋友们围成一个大圈。然后,他随机指定一个数m,让编…
剑指offer四十四之翻转单词顺序列
一、题目 牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I…
剑指offer三十六之两个链表的第一个公共结点
一、题目 输入两个链表,找出它们的第一个公共结点。 二、思路 如果存在共同节点的话,那么从该节点,两个链表之后的元素都是相同的。也就是说两个链表从尾部往前到某个点,节点都是一样的。我们可以用两个栈分别来装这两条链…
剑指offer十一之二进制中1的个数
一、题目 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 二、思路 方法一:  …
剑指offer四十八之不用加减乘除做加法
一、题目 写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。 二、思路 1、 采用位运算的方法,分三步: (1)、两个数异或:相当于每一位相加,而不考虑进位 (2)、两个数相与,并…
剑指offer二十九之最小的K个数
一、题目 输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。 二、思路 详解代码。 三、代码 import java.util.ArrayL…
剑指offer十六之合并两个排序的链表
一、题目 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 二、思路 注:链表1和链表2是两个递增排序的链表,合并这两个链表得到升序链表为链表3. 首先分析合并两个…
剑指offer九之变态跳台阶
一、题目 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 二、思路 1、关于本题,前提是n个台阶会有一次n阶的跳法。分析如下: f(1) = 1 f(2…
剑指offer十五之反转链表
一、题目 输入一个链表,反转链表后,输出链表的所有元素。 二、思路 详细分析见代码注释 三、代码 public class Solution { &n…