每日算法
锻炼逻辑思维能力之路
0914_h
The future has arrived. It commences now.
展开
-
Python实现广度优先策略
# -*- coding: utf-8 -*-from collections import deque # 线性表的模块# 首先定义一个创建图的类,使用邻接矩阵class Graph(object): def __init__(self, *args, **kwargs): self.order = [] # visited order ...转载 2019-12-01 15:21:19 · 258 阅读 · 0 评论 -
2018-04-05-Tencent翻转数列
一、编程11、题目描述(大概描述):n是数组长度(0<=n<=10^9),m是数组中翻转正负的间隔数;数组中的基本元素是由1,2,3,4,5....组成的。且满足n能被2m整除,即n%2m=0求数组中元素的和示例:8 28即:数组应该是[-1,-2,3,4,-5,-6,7,8]2、思路:第1,2....i..个数,i除以m=商...余数;将商和余数组成float型,向上取整,取完整后与...原创 2018-04-05 17:16:16 · 244 阅读 · 0 评论 -
2018-03-28-华为最大连续子数组和
1、问题描述:从一串整数数组中找出最大连续 子数组的和,整数数组中有正数和负数,0输入:2,-3,4,8输出:12思路:首先,规定一个最大值是max1=0然后,二重循环,第一重是取第1个到最后一个元素,规定数字元素和s=0,第二重循环是从第一重下标元素开始累加,直到数组长度为止,其中每累加一次,就和最大的值max1比较,若大于最大的值,就将其赋值给max1,知道第二重循环结束。返回第一重,接着去下...原创 2018-03-28 22:25:03 · 294 阅读 · 0 评论 -
十大经典排序算法
0、排序算法说明0.1 排序的定义对一序列对象根据某个关键字进行排序。0.2 术语说明稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面;不稳定:如果a原本在b的前面,而a=b,排序之后a可能会出现在b的后面;内排序:所有排序操作都在内存中完成;外排序:由于数据太大,因此把数据放在磁盘中,而排序通过磁盘和内存的数据传输才能进行;时间复杂度: 一个算法执行所耗费的时间。空间复杂度:运行完一...转载 2018-03-24 12:22:31 · 272 阅读 · 0 评论 -
2018-03-26-日期倒计时
1、问题描述:思路:代码:def isLeapYear(n): if (n%4==0 and n%100!=0) or n%400==0:#两个判断是否是闰年的条件必须是或的关系,不能缺少。 return True else: return Falsedef daysyear(date): monthdy=[0,31,28,31,30,31,30,31,31,30,31,30,31...原创 2018-03-27 15:24:54 · 343 阅读 · 0 评论 -
2018-03-24-路灯
一、路灯解题:while 1: mn=raw_input() if mn!='': n=int(mn.split()[0]) m=int(mn.split()[1]) s=set([int(i) for i in raw_input().split()]) l=list(s) l.sort() ...原创 2018-03-24 12:12:43 · 213 阅读 · 0 评论 -
2018-03-26-马路上的路灯
1、问题描述思路:首先设一个装数据的总list,元素也是list,每个元素是表示一个区域的起始点和终止点的坐标。其次总list按每个元素的终止点为升序排序依据,排好序;然后比较第一个元素的终止点和第二个元素的起始点,要是第一个元素的终止点>第二个元素的起始点时,就合并这两个list赋值给第一个元素,并且对这个新的list进行排序。同时,在总list中移除被合并的list元素,总list的长度...原创 2018-03-26 21:21:29 · 321 阅读 · 0 评论 -
2018-03-24-公交车乘客
思维:把每次的上车人数-每次的下车人数==>追加到list中然后,规定最大值是max1=0;累加每次车上的人数,每一次的累加和都要跟规定的最大值比较,若大于max1,则将累加和赋给max1,否则,保持当前最大值。代码:while 1: n=raw_input() if n!='': n=int(n) res=[] for i i...原创 2018-03-24 13:17:47 · 351 阅读 · 0 评论