剑指offer
文章平均质量分 55
arctan90°
莫把遗憾留给来日方长、
展开
-
剑指offer:不用加减乘除做加法
题目:写一个函数,求两个整数之和,要求在函数体内不得使用“+” “-” “*” “/” 四则运算符号。思考:求两个数之和,四则运算不能用,能用什么?1.分析人们是如何做十进制加法的(用6+17举例)①各位相加不进位,得到结果是 13个位6+7=13 不要进位是 3,十位0+1=1②做进位6+7=13,有进位,进位的数是10③把前面两个结果相加13+10=20图示...原创 2018-11-11 19:37:58 · 352 阅读 · 0 评论 -
剑指offer:翻转字符串
题目:翻转单词顺序输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母同样处理,例如:输入 I am a student. 输出: student. a am I思路:①翻转句子中所有字符,比如翻转 I am a student. 结果是 .tneduts a ma I②翻转每个单词中字符的顺序 就得到了 student. a am...原创 2018-11-12 09:28:45 · 225 阅读 · 2 评论 -
剑指offer:调整数组顺序
题目:调整数组顺序,使奇数位于偶数前面。输入一个整形数组,实现一个函数调整数组中数字顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。整体思路:思路1: 扫描数组,前指针指向第一个数字,向后走;后指针指向最后一个数字,向前走,若偶数在奇数前面,交换这两数字。代码:#include<stdio.h>void ReoederOddE...原创 2018-11-19 16:47:03 · 531 阅读 · 0 评论 -
剑指offer:第一个只出现一次的字符
题目:字符串中找到第一个只出现一次的字符。 在一个字符串中找出第一个只出现一次的字符。如输入:"abaccdeff",则输出: b思路: (1) 时间复杂度是 O(n^2) ...原创 2018-11-19 17:54:51 · 383 阅读 · 0 评论 -
剑指offer:链表中倒数第k个节点
题目:输入一个链表,输出该链表中倒数第k个结点。思路1:为了得到倒数第k个结点,很自然的想法是先走到链表的尾端,再从尾端回溯k步。可是我们从链表结点的定义可以看出本题中的链表是单向链表,单向链表的结点只有从前往后的指针而没有从后往前的指针,因此这种思路行不通。思路2:定义两个指针。快指针从链表的第一个节点开始遍历向前走k-1。慢指针保持不动;从第k步开始,慢指针也开始从链表的第一个节点开...原创 2018-11-27 14:13:35 · 401 阅读 · 0 评论 -
剑指offer:链表中环的入口节点
题目:如果一个链表中包含环,找出环的入口节点。思考:如果一个链表有环,用一个指针遍历将永远也走不到尽头。若用两个指针遍历:快指针每次走一步,慢指针每次走两步。如果快指针走到了链表的末尾都没有追上慢指针,则没有环。如果快指针追上了慢指针,则有环。如图:一个带环的链表,环内节点个数为4.步骤:a) 指针pfast,pslow初始化时都指向链表的第一个节点。b) 由...原创 2018-11-27 17:48:24 · 195 阅读 · 0 评论