摘要:
题目描述 输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。 为简单起见,标点符号和普通字母一样处理。 例如输入字符串 "I am a student.",则输出 "student. a am I"。 样例 解法 先对字符串按空格切割成数组,再逆序数组后,最后将元素拼接并返回。 阅读全文
摘要:
题目描述 给定一个数组 A[0, 1, …, n-1],请构建一个数组 B[0, 1, …, n-1],其中 B 中的元素 B[i]=A[0]×A[1]×… ×A[i-1]×A[i+1]×…×A[n-1]。 不能使用除法。 样例 思考题: 能不能只使用常数空间?(除了输出的数组之外) 解法 把 B 阅读全文
摘要:
题目描述 从扑克牌中随机抽 5 张牌,判断是不是一个顺子,即这5张牌是不是连续的。 2~10 为数字本身,A 为1,J 为 11,Q 为 12,K 为 13,大小王可以看做任意数字。 为了方便,大小王均以 0 来表示,并且假设这副牌中大小王均有两张。 样例1 样例2 解法一 对数组排序; 计算出 0 阅读全文
摘要:
题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 思路: 关于本题,前提是n个台阶会有一次n阶的跳法。分析如下: f(1) = 1 f(2) = f(2-1) + f(2-2) //f(2-2) 表示2阶一次跳2阶的次数。 f( 阅读全文
摘要:
题目描述 字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。 请定义一个函数实现字符串左旋转操作的功能。 比如输入字符串 "abcdefg" 和数字 2,该函数将返回左旋转 2 位得到的结果 "cdefgab"。 注意: 数据保证 n 小于等于输入字符串的长度。 样例 解法 原理:YX 阅读全文
摘要:
题目描述 输入两个链表,找出它们的第一个公共结点。 样例 解法 先遍历两链表,求出两链表的长度,再求长度差 |n1 - n2|。 较长的链表先走 |n1 - n2| 步,之后两链表再同时走,首次相遇时的节点即为两链表的第一个公共节点。 阅读全文
摘要:
题目描述 给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。 解法一:借助HashSet结构 逐个节点对象加入set中,如果已存在,则说明是入口结点。 时间复杂度 O(nlogn),insert和find/contains的时间复杂度皆可近似看为O(logn)级,如果遍历一遍 阅读全文
摘要:
题目描述 请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。 如二叉树: 打印结果为: 解法 之字形打印,即先从左到右,后从右到左,借助栈结构实现; 两个辅助栈:一个存放奇数层节点的栈s1,一个存放偶数层节 阅读全文
摘要:
题目描述 请实现一个函数,用来判断一棵二叉树是不是对称的。 如果一棵二叉树和它的镜像一样,那么它是对称的。 样例 1.只要pRoot.left和pRoot.right是否对称即可 2.左右节点的值相等 且 对称子树left.left, right.right ; left.rigth,right.l 阅读全文