起风了

“路海长 青夜旷 越过群山追斜阳”

剑指Offer面试题:7.旋转数组的最小数字

剑指Offer面试题:7.旋转数组的最小数字缩略图
一、题目:旋转数组的最小数字 题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。   这道题最直观的解法并不难,从头到尾遍历数组一次,我们就能...

剑指Offer面试题:8.斐波那契数列

剑指Offer面试题:8.斐波那契数列缩略图
一、题目:斐波那契数列 题目:写一个函数,输入n,求斐波那契(Fibonacci)数列的第n项。斐波那契数列的定义如下:  二、效率很低的解法   很多C/C++/C#/Java语言教科书在讲述递归函数的时候,大多都会用Fibonacci作为例子,因此我们会对这种解法烂熟于心: public static long FibonacciRecursi...

剑指Offer面试题:9.二进制中1的个数

剑指Offer面试题:9.二进制中1的个数缩略图
一、题目:二进制中1的个数 题目:请实现一个函数,输入一个整数,输出该数二进制表示中1的个数。例如把9表示成二进制是1001,有2位是1。因此如果输入9,该函数输出2。 二、可能引起死循环的解法   一个基本的思路:先判断整数二进制表示中最右边一位是不是1。接着把输入的整数右移一位,此时原来处于从...

剑指Offer面试题:10.数值的整数次方

剑指Offer面试题:10.数值的整数次方缩略图
一、题目:数值的整数次方 题目:实现函数double Power(doublebase, int exponent),求base的exponent次方。不得使用库函数,同时不需要考虑大数问题。   在.NET Framework提供的BCL中,Math类实现了一个Pow方法,例如要求2的三次方,可以通过以下代码实现: double result = Math.Pow(2, 3);   ...

剑指Offer面试题:11.打印1到最大的n位数

剑指Offer面试题:11.打印1到最大的n位数缩略图
一、题目:打印1到最大的n位数 题目:输入数字n,按顺序打印出从1最大的n位十进制数。比如输入3,则打印出1、2、3一直到最大的3位数即999。 二、不同的解法 2.1 不假思索的解法   最容易想到的办法是先求出最大的n位数,然后用一个循环从1开始逐个打印: static void Print1ToMaxOfNDigitsSimple(in...

剑指Offer面试题:12.在O(1)时间删除链表结点

剑指Offer面试题:12.在O(1)时间删除链表结点缩略图
一、题目:在O(1)时间删除链表结点 题目:给定单向链表的头指针和一个结点指针,定义一个函数在O(1)时间删除该结点。   原文采用的是C/C++,这里采用C#,节点定义如下: public class Node<T> { // 数据域 public T Item { get; set; } // 指针域 public Node...

剑指Offer面试题:13.调整数组顺序使奇数位于偶数前面

quick sort
一、题目:调整数组顺序使奇数位于偶数前面 题目:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。   例如有以下一个整数数组:12345,经过调整后可以为:15342、13542、13524等等。 二、解题思路 2.1 基本解法   如果不考虑...

剑指Offer面试题:14.链表的倒数第k个节点

剑指Offer面试题:14.链表的倒数第k个节点缩略图
PS:这是一道出境率极高的题目,记得去年参加校园招聘时我看到了3次,但是每次写的都不完善。 一、题目:链表的倒数第k个节点 题目:输入一个链表,输出该链表中倒数第k个结点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾结点是倒数第1个结点。例如一个链表有6个结点,从头结点开始它们的值依次是...

剑指Offer面试题:15.反转链表

剑指Offer面试题:15.反转链表缩略图
一、题目:反转链表 题目:定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头结点。   链表结点定义如下,这里使用的是C#描述: public class Node { public int Data { get; set; } // 指向后一个节点 public Node Next { get; set; } public ...

剑指Offer面试题:16.合并两个排序的链表

剑指Offer面试题:16.合并两个排序的链表缩略图
PS:这也是一道出镜率极高的面试题,我相信很多童鞋都会很眼熟,就像于千万人之中遇见不期而遇的人,没有别的话可说,唯有轻轻地问一声:“哦,原来你也在这里? ” 一、题目:合并两个排序的链表 题目:输入两个递增排序的链表,合并这两个链表并使新链表中的结点仍然是按照递增排序的。例如输入下...