面试题总结

 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


posted @ 2020-02-05 15:59  梧桐花落  阅读(132)  评论(0编辑  收藏  举报