算法与数据结构
算法分享
焦志坤
一名程序猿的自我救赎之路
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
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 · 1007 阅读 · 0 评论 -
二叉树的遍历方式以及代码实现python
二叉树的遍历方式以及代码实现python 1、基本概念 首先我们先请出一位二叉树先生(噱(稍)微有点丑) 三种遍历方式 先序遍历 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 · 508 阅读 · 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 · 447 阅读 · 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 · 600 阅读 · 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 · 1037 阅读 · 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 np def fib_02(n): tmp = np.zeros(n) tmp[0] = 1 t.原创 2020-05-29 09:42:42 · 201 阅读 · 0 评论 -
python中的排序算法
python中的排序算法 创建无序列表及调用各排序函数 (1)冒泡排序 (2)选择排序 (3)快速排序 (4)归并排序原创 2019-08-07 15:42:06 · 227 阅读 · 0 评论
分享