剑指offer
IT_LIULEI
这个作者很懒,什么都没留下…
展开
-
剑指offer16:数值的整数次方
题目:实现函数double Power(double base,int exponent),求base的exponent次方,不得使用库函数,同时不需要考虑大数问题。 一、第一种方法 大体分为以下四种情况: (1)底数为0,则返回0; (2)底数不为0,若指数为0,则返回1; (3)底数不为0,若指数为正数,调用Power...原创 2019-10-02 20:45:46 · 172 阅读 · 0 评论 -
剑指offer17:打印从1到最大的n位数
题目:输入数字n,按顺序打印从1到最大的n为十进制数。比如输入3,则打印出1,2,3一直到最大的3位数999。 看到这个问题之后,最容易想到的办法就是先求出最大的n位数,然后用一个循环从1开始逐个打印。于是很容易写出以下代码: void Print1ToMaxOfNDigits_1(int n) { int number=1; int i=0; w...原创 2019-10-02 20:45:56 · 165 阅读 · 0 评论 -
剑指offer21:调整数组顺序使奇数位于偶数前面
题目:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。 分析:这道题目的要求是把奇数放在数组的前半部分,偶数放在数组的后半部分,因此所有的奇数应该位于偶数的前面,也就是说,在扫描数组的时候,如果发现偶数出现在奇数的前面,则交换它们的顺序,交换之后就符合要求了。 思想:可以采用两...原创 2019-10-03 11:09:59 · 162 阅读 · 0 评论 -
剑指offer22:链表中倒数第k个结点
题目:输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾结点是倒数第1个节点。例如,一个链表有6个节点,从头节点开始,它们的值依次是1,2,3,4,5,6。这个链表的倒数第3个节点是值为4的节点。 链表定义如下: struct ListNode { int va...原创 2019-10-03 13:50:26 · 187 阅读 · 0 评论 -
剑指offer23:链表中环的入口节点
题目:如果一个链表中包含环,如何找出环的入口节点?例如,在下图所示的链表中,环的入口节点是节点3。 (1)判断一个链表是否包含环? 可以用两个指针来解决这个问题,定义一个慢指针和一个快指针,这两个指针同时从链表的头节点出发,慢指针一次走一步,快指针一次走两步,如果快指针追上了慢指针,说明链表就包含环,如果快指针走到了链表的末尾都么追上慢指针,说明链...原创 2019-10-03 19:51:33 · 185 阅读 · 0 评论 -
剑指offer24:反转链表
题目:定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。 链表定义如下: struct ListNode { int value; ListNode* next; }; 思路:首先将pCur和pNext指向第一个数据结点,phead的指针域置...原创 2019-10-04 11:12:09 · 230 阅读 · 0 评论 -
剑指offer25:合并两个排序的链表
题目:输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然使递增排序的。例如:输入下图的链表1和链表2,则合并之后的升序链表如图链表3所示。 链表定义如下: struct ListNode { int value; ListNode* next; };...原创 2019-10-04 21:53:18 · 219 阅读 · 0 评论