请教我kao代码

Knowledge gives us ways to survive the destruction until the rebirth arrives

0%

题目

给定一个字符串,请编写一个函数判断该字符串是否回文。如果回文请返回true,否则返回false。

示例1

输入:

1
"absba"

输出:

1
true

示例2

输入:

1
"ranko"
阅读全文 »

题目

删除给出链表中的重复元素(链表中元素从小到大有序),使链表中的所有元素都只出现一次 例如: 给出的链表为1→1→2,返回1 →2. 给出的链表为1 →1→2→3→3,返回1 →2→3.

示例1

输入:

1
{1,1,2}

输出:

1
{1,2}

思路

分析

用一个指针就可以实现,对指针当前位置和下一位置的值进行比较。

阅读全文 »

题目

给定一个m x n大小的矩阵(m行,n列),按螺旋的顺序返回矩阵中的所有元素。

示例1

输入:

1
[[1,2,3],[4,5,6],[7,8,9]]

输出:

1
[1,2,3,6,9,8,7,4,5]

思路

分析

阅读全文 »

题目

对于一个给定的链表,返回环的入口节点,如果没有环,返回null

拓展:

你能给出不利用额外空间的解法么?

思路

分析

利用快慢指针确定链表是否存在环。

是:此时的slow指针和fast指针相遇且均在环内。此时将另一个指针slow2指向链表头结点,并让slow2和slow指针同时一次移动一步。由于slow指针在环内,所以两节点一旦相遇。一定是在环的入口节点处。

否:返回null。

实现

阅读全文 »

题目

给定一个二叉树,返回该二叉树层序遍历的结果,(从左到右,一层一层地遍历) 例如: 给定的二叉树是{3,9,20,#,#,15,7},

该二叉树层序遍历的结果是 [ [3], [9,20], [15,7]]

示例1

输入:

1
{1,2}

输出:

1
[[1],[2]]

示例2

阅读全文 »

题目

对于一个字符串,请设计一个高效算法,计算其中最长回文子串的长度。

给定字符串A以及它的长度n,请返回最长回文子串的长度。

示例1

输入:

1
"abc1234321ab",12

输出:

1
7

思路

分析

阅读全文 »

题目

数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。

示例1

输入:

1
[1,2,3,2,2,2,5,4,2]

输出:

1
2

思路

分析

数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。 思路:用一般的排序也可以完成这道题目,但是如果那样完成的话就可能太简单了。 用preValue记录上一次访问的值,count表明当前值出现的次数,如果下一个值和当前值相同那么count++;如果不同count--,减到0的时候就要更换新的preValue值了,因为如果存在超过数组长度一半的值,那么最后preValue一定会是该值。

阅读全文 »

题目

以字符串的形式读入两个数字,编写一个函数计算它们的和,以字符串形式返回。

(字符串长度不大于100000,保证字符串仅由'0'~'9'这10种字符组成)

输入:

1
"1","99"

输出:

1
"100"

Tips:

1
1+99=100 

思路

阅读全文 »

题目

实现一个特殊功能的栈,在实现栈的基本功能的基础上,再实现返回栈中最小元素的操作。

输入:

1
[[1,3],[1,2],[1,1],[3],[2],[3]]

输出:

1
[1,2]

Tips:

1
2
3
4
5
有三种操作种类,op1表示push,op2表示pop,op3表示getMin。你需要返回和op3出现次数一样多的数组,表示每次getMin的答案

1<=操作总数<=1000000
-1000000<=每个操作数<=1000000
数据保证没有不合法的操作

思路

分析

阅读全文 »