剑指offer
文章平均质量分 58
wangqicc
这个作者很懒,什么都没留下…
展开
-
从尾到头打印链表
题目描述:输入一个链表,从尾到头打印链表每个节点的值。题目解答:刚开始竟然不知道在 java 中链表的基本操作。。。总的来说,有两种方法可以解决:法一:利用集合 Collections 中的 reverse() 方法实现集合的翻转法二:想到先进后出的栈表操作,容易知道这是一个递归的操作代码如下:import java.util.*; class ListNode { int val; ...原创 2018-06-17 11:19:54 · 85 阅读 · 0 评论 -
翻转单词顺序列
题目描述:牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a student.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么?题目解答:法一,通过 ja...原创 2018-06-14 19:44:38 · 120 阅读 · 0 评论 -
不用加减乘除做加法
题目描述:写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。题目解答:法一,利用 java 内置大数运算法二,利用数的二进制运算,在这个过程中注意进位的操作其中 & 可以用于取余数,^ 可用于处理进位操作import java.util.*; import java.math.*; public class Solution { public stati...原创 2018-06-13 23:08:51 · 116 阅读 · 0 评论 -
求1+2+3+...+n
题目描述:求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。题目解答:首先题目要求将常用的公式法和循环求解法筛除了刚开始我想到的竟然是最耗时间的递归,哎。。。递归层数多了过后容易出现栈溢出的结果,但是在牛客网上由于数据太弱竟然能够通过。。。之后看过大神写的代码之后豁然开朗,在公式的基础上添加位移的运算不就可...原创 2018-06-13 20:58:14 · 168 阅读 · 0 评论 -
跳台阶
题目描述:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。题目解答:其实只要列举出前 5 项即可得出规律n = 1 时为 1 ,一种n = 2 时为 11、2,两种n = 3 时为 111、12、21,三种n = 4 时为 1111、112、121、211、22,五种n = 5 时为 11111、1112、1121、1211、2111、122、212、22...原创 2018-06-13 20:24:08 · 91 阅读 · 0 评论 -
斐波那契数列
题目描述:大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。n<=39题目解答:import java.util.*; public class Solution { public static void main(String[] args) { Scanner input = new Scanner(System.in); ...原创 2018-06-13 19:57:07 · 104 阅读 · 0 评论 -
反转链表
题目描述:输入一个链表,反转链表后,输出链表的所有元素。题目解答:属于链表的基本操作,刚开始的时候链表的操作忘了不少,竟然不知该如何下手。。。进行链表的学习的时候建议画图来帮助自己理解,理解透了过后再下手编代码。。。import java.util.*; class ListNode { int val; ListNode next = null; ListNode(int...原创 2018-06-20 23:40:04 · 105 阅读 · 0 评论 -
二维数组中的查找
题目描述:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。题目解答:第一种:直接使用暴力求解,即二重循环第二种:从左下角元素往上查找,右边元素是比这个元素大,上边是的元素比这个元素小。于是,target 比这个元素小就往上找,比这个元素大就往右找。如果出了边界,则说明二维数组中不存...原创 2018-06-12 16:36:21 · 91 阅读 · 0 评论 -
替换空格
题目描述: 请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。题目解答:import java.util.*; import java.math.*; public class Solution { public static void main(String[] args...原创 2018-06-11 22:43:40 · 92 阅读 · 0 评论 -
链表中倒数第 k 个节点
题目描述:输入一个链表,输出该链表中倒数第 k 个结点。题目解答:提供两种解法:法一:找到第 count - k 个节点即为链表的第 k 个节点,count 为链表节点个数法二:通过两个指针实现。第一个指针指向第 k - 1 个节点,然后第二个指针随着第一个指针一起往后移动,直到第一个指针指向最后一个节点为止,此时第二个指针指向的就是倒数第 k 个节点。代码如下:import java.util....原创 2018-06-18 22:10:00 · 107 阅读 · 0 评论