Day2:选择排序和两数相加
Posted spytensor
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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:选择排序和两数相加的主要内容,如果未能解决你的问题,请参考以下文章