牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a student.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么?
全翻转,再翻转单词
1 | class Solution { |
牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a student.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么?
全翻转,再翻转单词
1 | class Solution { |
汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。是不是很简单?OK,搞定它!
翻转3次
1 | class Solution { |
输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。
两端向内,小了挪大,大了挪小
1 | class Solution { |
所有和为S的连续正数序列(至少有2个数)
1~2开始,小了挪右端点,大了挪左端点
1 | class Solution { |
一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。
异或2次即为0,数组异或和中1位即为两数相异的bit,以最右的1(取反+1再相与)区分
1 | class Solution { |
输入一棵二叉树,判断该二叉树是否是平衡二叉树。
AVL子树深度差小于1
1 | class Solution { |
输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。
广搜、一层一层数,以便计层数
1 | /* |
统计一个数字在排序数组中出现的次数。
二分找n和n+1
1 | class Solution { |
输入两个链表,找出它们的第一个公共结点。
长度差、快慢指针
1 | /* |
在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007
自左向右归并,数逆序数
1 | class Solution |