
算法与数据结构
算法分享
焦志坤
一名程序猿的自我救赎之路
展开
-
python实现。公司有2n个人,AB两个地点,每个人去往AB两地的价格不一样,现要求去两地的人数均为n人,要求票价最低(总费用)
leetcode:两地调度公司计划面试 2N 人。第 i 人飞往 A 市的费用为 costs[i][0],飞往 B 市的费用为 costs[i][1]。返回将每个人都飞到某座城市的最低费用,要求每个城市都有 N 人抵达。示例:输入:[[10,20],[30,200],[400,50],[30,20]]输出:110解释:第一个人去 A 市,费用为 10。第二个人去 A 市,费用为 30。第三个人去 B 市,费用为 50。第四个人去 B 市,费用为 20。最低总费用为 10 + 30 +原创 2020-07-06 10:29:58 · 967 阅读 · 0 评论 -
二叉树的遍历方式以及代码实现python
二叉树的遍历方式以及代码实现python1、基本概念首先我们先请出一位二叉树先生(噱(稍)微有点丑)三种遍历方式先序遍历a-b-d-e-c-f中序遍历d-b-e-a-c-f后序遍历d-e-b-f-c-a那么问题来了我们应该怎么记呢?重点来了:所谓前中后都是以“当前根节点”为主,“前”就是说第一个先走“当前根节点”再走左子树再走右子树,“中”就是说第一个先走左子树再走“当前根节点”再走右子树,“后”就是说第一个先走左子树再走右子树再走“当前根节点”,2、代码实现# 首原创 2020-07-05 10:22:20 · 485 阅读 · 0 评论 -
力扣题,二叉树的翻转python
力扣题,二叉树的翻转python# 定义class TreeNode: def __init__(self, x): self.val = x self.left = None self.right = None# 解决class Solution: def invertTree(self, root): if not root: return None root.left,ro原创 2020-07-03 17:12:09 · 415 阅读 · 0 评论 -
python二分查找有序列表中元素
二分查找有序列表中元素第一种:使用递归方式def binary_search_one(lst,target): """ :param lst: 传入的列表 :param target: 目标值 :return: 找到目标返回索引,未找到返回none """ # 计算列表长度 len_lst = len(lst) if len_lst<1: return None mid_index = len_lst//2原创 2020-06-01 08:27:33 · 570 阅读 · 2 评论 -
使用Python实现折半查找无序列表中的某个元素
# 子问题算法(子问题规模为 1)def is_in_list(init_list, el): return [False, True][init_list[0] == el]# 分治法def solve(init_list, el): n = len(init_list) if n == 1: # 若问题规模等于 1,直接解决 return is_i...原创 2019-08-07 19:52:38 · 1000 阅读 · 0 评论 -
斐波那契不同复杂度代码
# todo 递归 时间复杂度:o(2^n) 空间复杂度o(n)def fib_01(n): if n<3: return 1 return fib_01(n-2)+fib_01(n-1)print(fib_01(8))# todo numpy 时间复杂度:o(n) 但是会占用很多内存空间import numpy as npdef fib_02(n): tmp = np.zeros(n) tmp[0] = 1 t.原创 2020-05-29 09:42:42 · 176 阅读 · 0 评论 -
python中的排序算法
python中的排序算法创建无序列表及调用各排序函数(1)冒泡排序(2)选择排序(3)快速排序(4)归并排序原创 2019-08-07 15:42:06 · 199 阅读 · 0 评论