Day2:选择排序和两数相加

Posted spytensor

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Day2:选择排序和两数相加相关的知识,希望对你有一定的参考价值。

Day2:选择排序和两数相加

几次面试后深知非科班在基础上的弱势,故决定自2018年5月7日起刷一波算法和数据结构,编程语言为:Python。



(2)排序算法-选择排序

算法思想:

选择排序和冒泡排序的区别就是,在一轮迭代中不频繁交换相邻元素,而是找出最小元素并交换到首位(末位),因此在每次迭代后都把次小元素迁移到最小元素后面,这样便实现了排序。

Python代码:


def selectSort(list_A):
    n = len(list_A)    
   for i in range(0,n-1):        index = i        
       for j in range(i+1,n):            
           if list_A[index] > list_A[j]:                index = j        
       if index != i:            list_A[i],list_A[index] = list_A[index],list_A[i]
    return list_A





LeetCode-2:判相同树

问题描述:

   给定两个二叉树,编写一个函数检验他们是否相同。如果两个树在结构上相同,并且对应的节点值相同,则认为他们相同

Python代码:


# Definition for a binary tree node.# class TreeNode:#     def __init__(self, x):#         self.val = x#         self.left = None#         self.right = Noneclass Solution:
    def isSameTree(self, p, q):
        """        :type p: TreeNode        :type q: TreeNode        :rtype: bool        """
       #1. 如果p,q均为空,说明在边界了        
       if not p and not q:            
           return True
       #2. 如果结点的值相同,则将左右结点的值递归判断        
       if p and q and p.val == q.val:            left_ = self.isSameTree(p.left,q.left)            right_ = self.isSameTree(p.right,q.right)            
           return left_ and right_  #此处使用and返回布尔值        
       else:            
           return False




以上是关于Day2:选择排序和两数相加的主要内容,如果未能解决你的问题,请参考以下文章

不积跬步无以至千里—day2

2_两数相加

代码题(11)— 链表两数相加

2. 两数相加

链表题--02----两数相加

C++代码算法题:.两数相加