面试题总结
Posted vinsent
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面试题总结相关的知识,希望对你有一定的参考价值。
Links:
https://github.com/CyC2018/CS-Notes/blob/master/notes/Leetcode%20%E9%A2%98%E8%A7%A3%20-%20%E9%93%BE%E8%A1%A8.md#3-%E5%BD%92%E5%B9%B6%E4%B8%A4%E4%B8%AA%E6%9C%89%E5%BA%8F%E7%9A%84%E9%93%BE%E8%A1%A8
题目1:
实现一个简单的程序:合并两个有序的链表为一个新的有序链表。
说明:
链表可能为空。
例子:
Input: 1->2->4, 1->3->4
Output: 1->1->2->3->4->4
class S1:
def mergerTwoLists(self,curl1,curl2):
// h=ListsNode(-1)
if curl1!=None and curl2!=None:
return None
if curl1 is None:
return curl2
if curl2 is None:
return curl1
if curl1.val<curl2.val:
curl1.next=self.mergerTwoLists(curl1.next,curl2)
return curl1
else:
curl2.next=self.mergerTwoLists(curl2.next,curl1)
return curl2
Links:
https://github.com/CyC2018/CS-Notes/blob/master/notes/Leetcode%20%E9%A2%98%E8%A7%A3%20-%20%E6%A0%91.md#3-%E4%B8%A4%E8%8A%82%E7%82%B9%E7%9A%84%E6%9C%80%E9%95%BF%E8%B7%AF%E5%BE%84
题目2:
实现一个简单的程序,要求对于一个输入的二叉树,求任意两节点之间最长路径。
说明:
两节点之间的路径长度为连接两节点之间边数之和。
例子:
Input:
1
/ 2 3
/ 4 5
Output: 3 (注:可行解为:[4,2,1,3]或[5,2,1,3])
go
type Tree struct{
Val int
Rm int
Lm int
Left *Tree
Right *Tree
}
max:=0
func MaxDist(root Tree) int{
if root ==nil{
return
}
if root.Left!=nil{
root.Lm=MaxDist(root.Left)+1
}
if root.Right!=nil{
root.Rm=MaxDist(root.Right)+1
}
sum:=root.Rm+root.Lm
if sum>max{
max=sum
}
if root.Rm>root.Lm{
return root.Rm
}else{
return root.Lm
}
}
Links:
https://github.com/CyC2018/CS-Notes/blob/master/notes/Leetcode%20%E9%A2%98%E8%A7%A3%20-%20%E5%8A%A8%E6%80%81%E8%A7%84%E5%88%92.md#3-%E5%88%86%E5%89%B2%E6%95%B4%E6%95%B0%E6%9E%84%E6%88%90%E5%AD%97%E6%AF%8D%E5%AD%97%E7%AC%A6%E4%B8%B2
题目3:
实现一个简单的程序:对于给定的一个正整数m,将m划分为和为m的n个正整数(n>=2),要求使得划分出的这n个数乘积最大。
说明:
m的取值范围为[2, 64]。
例子1:
Input: 2
Output: 1(划分方法:2=1+1)
例子2:
Input:10
Output: 36(划分方法:3+3+4)
Links:
https://www.nowcoder.com/practice/48b3cb4e3c694d9da5526e6255bb73c3?tpId=37&tqId=21236&tPage=1&rp=&ru=/ta/huawei&qru=/ta/huawei/question-ranking
题目1:
实现一个简单的英文句子逆序的功能,要求将一个英文语句以单词为单位逆序输出。
说明:
所有单词之间一个空格隔开,语句中只包含英文字母,无其他类型字符。
例子:
Input: How are you
Output: you are how
Links:
https:www.nowcoder.com/practice/2c81f88ecd5a4cc395b5308a99afbbec?tpId=37&tqId=21315&tPage=5&rp=&ru=/ta/huawei&qru=/ta/huawei/question-ranking
题目2:
实现一个简单的字符串识别程序,要求对于一个输入的字符串找出其中连续最长的数字串并输出其长度。
说明:
1.输出的数字串和长度用一个","隔开;
1.如果连续最长的数字串的长度为0,则返回空串;
2.如果输入字符串是空,同样返回空串。
例子:
Input: 123456a789
Output: 123456,6
Links:
https://github.com/CyC2018/CS-Notes/blob/master/notes/Leetcode%20%E9%A2%98%E8%A7%A3%20-%20%E6%A0%91.md#14-%E6%89%BE%E5%87%BA%E4%BA%8C%E5%8F%89%E6%A0%91%E4%B8%AD%E7%AC%AC%E4%BA%8C%E5%B0%8F%E7%9A%84%E8%8A%82%E7%82%B9
题目3:
给定一个二叉树,找出所有节点中的第二小值。
说明:
1.二叉树非空且每个节点只有0或2个子节点;
2.节点值均为正整数;
3.父节点均不大于子节点值;
4.如果第二小值不存在,输出-1。
例子1:
Input:
1
/ 2 2
/ 2 4
Output: 2
例子2:
Input:
1
/ 1 1
Output: -1
以上是关于面试题总结的主要内容,如果未能解决你的问题,请参考以下文章