算法与数据结构
文章平均质量分 92
Time-Traveler
这个作者很懒,什么都没留下…
展开
-
负载均衡策略之轮询策略
本文转自:https://mozillazg.com/2019/02/load-balancing-strategy-algorithm-weighted-round-robin.html#hidround-robin,尊重原创前言:本文简单介绍一下轮询(Round Robin)这个负载均衡策略。轮询选择 (Round Robin):轮询选择指的是从已有的后端节点列表中按顺序依次选择一个节点出来提供服务。一种轮询选择的方法是把所有的节点看做一个一个的点,并把这些点连起来组成一个圆, 轮询选择就是在转载 2021-08-09 13:52:38 · 2157 阅读 · 0 评论 -
python 二分插入排序
直接插入排序请看:https://blog.csdn.net/ALakers/article/details/108738339二分插入排序:# 二分插入排序def insertion_sort_binarysearch(data_list): for index in range(1,len(data_list)): current_value = data_list[index] position = index left = .原创 2020-11-11 15:09:23 · 694 阅读 · 0 评论 -
Python -二叉树 创建与遍历算法
本篇绝大部分参考自:https://blog.csdn.net/weixin_44951273/article/details/108716212树是由n(n>=1)个有限结点组成一个具有层次关系的集合,把它叫做树是因为它看起来像一颗倒挂的树,也就是说它是根朝上,而叶朝下的。二叉树特点:每个结点有0个或多个子结点没有父结点的结点成为根结点每一个非根结点只有一个父结点每个结点及其后代结点整体上可以看做一棵树,称为当前结点的父结点的一个字树树的相关术语:结点的度:一个结点含有的子树的原创 2020-11-09 13:24:00 · 160 阅读 · 0 评论 -
最少的硬币 Python
题目:1元,3元,5元的硬币若干枚,如何用最少的硬币凑够11元?代码:def min_num(money): num = 0 for i in [5, 3, 1]: num += int(money/i) money = money%i return numprint(min_num(24))原创 2020-11-06 16:06:57 · 277 阅读 · 0 评论 -
M根绳子最长长度问题
题目:有N根绳子,第i根绳子的长度为Li,现在需要M根等长的绳子,可以对N根绳子进行任意裁剪但不能拼接,那么这M根绳子的最长长度是多少。代码:def max_length(m,n,length_data): max_length = float(max(length_data)) min_length = 0.0 while(abs(max_length - min_length) >= 1e-3): mid = min_length +原创 2020-11-06 15:43:05 · 344 阅读 · 0 评论 -
LeetCode:67 Python 二进制求和
def add_binary(a: str, b: str) -> str: result_str = '' if len(a)>len(b): a,b = b,a l = len(a) s = len(b) - l b_left = b[:s] b = b[s:] index = l-1 temp = 0 while index >=0: res = int(a[index])原创 2020-11-06 01:12:45 · 140 阅读 · 0 评论 -
LeetCode Python 不同路径(动态规划)
本篇题目图片文字来源于:https://blog.csdn.net/qq_43328040/article/details/109459709题目描述一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。问总共有多少条不同的路径?例如,上图是一个7 x 3 的网格。有多少可能的路径?示例 1: 输入: m = 3, n = 2 输出: 3 解释: 从左上角原创 2020-11-03 14:26:06 · 324 阅读 · 1 评论 -
Python LeetCode求子集
def subsets(nums): item = [] result = [] result.append(item) def generate(i, nums): if i >= len(nums): return item.append(nums[i]) result.append(list(item)) generate(i + 1, nums) item.原创 2020-11-02 13:58:02 · 559 阅读 · 1 评论 -
Leetcode 独一无二的出现次数
一、题目要求: 给你一个整数数组 arr,请你帮忙统计数组中每个数的出现次数。 如果每个数的出现次数都是独一无二的,就返回 true;否则返回 false。 示例 1: 输入:arr = [1,2,2,1,1,3] 输出:true 解释:在该数组中,1 出现了 3 次,2 出现了 2 次,3 只出现了 1 次。没有两个数的出现次数相同。 示例 2: 输入:arr = [1,2] 输出:false 示例 3: 输入:arr = [-.原创 2020-10-29 19:00:33 · 166 阅读 · 0 评论 -
Python LeetCode 数组中的最长山脉
1、题目描述我们把数组 A 中符合下列属性的任意连续子数组 B 称为 “山脉”:B.length >= 3存在 0 < i < B.length - 1 使得 B[0] < B[1] < ... B[i-1] < B[i] > B[i+1] > ... > B[B.length - 1](注意:B 可以是 A 的任意子数组,包括整个数组 A。)输入:[2,1,4,7,3,2,5]输出:5解释:最长的 “山脉” 是 [1,4,7,3,原创 2020-11-02 11:58:04 · 1050 阅读 · 0 评论 -
Python 快速排序
def quick_sort(data_list): if len(data_list) >= 2: length = int(len(data_list)/2) middle_element = data_list[length] left,right = [], [] data_list.remove(middle_element) for num in data_list: if n原创 2020-09-23 00:20:20 · 73 阅读 · 0 评论 -
Python 插入排序
def insert_sort(data_list): length = len(data_list) for i in range(1,length): # 选择当前值 判断前面是否有比当前值大的元素 存在则往后移位 temp = data_list[i] j = i - 1 while j>=0 and data_list[j] > temp: data_list[j+1]原创 2020-09-22 18:56:55 · 118 阅读 · 0 评论 -
Python 冒泡排序以及选择排序
def select_sort(array): length = len(array) for i in range(0,length): index = i # 记住下标方便后面进行交换 for j in range(i+1,length): if array[index]>array[j]: index = j if .原创 2020-09-22 17:07:23 · 217 阅读 · 0 评论 -
Python 归并排序
体现了分治思想def merge_sort(arr): if len(arr)<=1: return arr middle = int(len(arr)/2) left = arr[:middle] right = arr[middle:] left_data = merge_sort(left) right_data = merge_sort(right) return merge(left_data,ri原创 2020-09-22 16:14:03 · 267 阅读 · 0 评论 -
Python 二分查找
递归方式:array = [3,5,8,12,15,17,40,54,65,80]def binary_search_v1(start,end,array,target): if start > end: return middle = int((start+end)/2) middle_element = array[middle] if target == middle_element: print('got it {},原创 2020-09-19 11:35:03 · 95 阅读 · 0 评论 -
Python 全排列
给定一个列表,列出所有排列import copyarray = [3,2,5]new_array = []def get_results(arr): l = len(arr) if l == 0: print('new array is {}'.format(new_array)) for i in range(0,l): # 复制一份 cpy = copy.copy(arr) # 取出元素原创 2020-09-19 01:00:26 · 689 阅读 · 0 评论