自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

子藤的博客

子藤的学习笔记本

  • 博客(104)
  • 收藏
  • 关注

原创 每日一题——leetcode643. 子数组最大平均数 I

题目描述给定 n 个整数,找出平均数最大且长度为 k 的连续子数组,并输出该最大平均数。示例:输入:[1,12,-5,-6,50,3], k = 4输出:12.75解释:最大平均数 (12-5-6+50)/4 = 51/4 = 12.75提示:1 <= k <= n <= 30,000。所给数据范围 [-10,000,10,000]。题目链接:https://leetcode-cn.com/problems/maximum-average-subarray-i解答思路

2021-02-04 23:15:47 329

原创 mysql创建表时需要基本考虑哪些问题

表结构表名需要哪些字段主键索引外键唯一约束引擎编码注释

2021-01-15 10:24:02 665

原创 每日一题——some小问题集合

今天是一系列的小问题的集合哦1、类继承+__class__方法问题:有如下的一段代码,问如何使用对象obj调用A的show方法答:obj是类B的一个实例对象,直接调用肯定调用的是类B的show方法。可以使用__class__方法来修改obj的类型,改为A类型,此时obj就变成了类A的一个实例对象,就可以调用A的show方法了,代码及结果如下class A(object): def show(self): print('this is the A show!')cla

2021-01-12 20:36:37 338

原创 每日一提——+-符号排序

题目描述输入一个仅包含+和-的数组,输出一个所有+在左边-在右边排序之后的数组,注意要在数组内进行排序示例输入:[‘+‘,’-‘,’-‘,’-‘,’+‘,‘+’]输出:[‘+‘,‘+‘,‘+‘,’-‘,’-‘,’-‘]思路一——遍历+交换位置先把数组中所有的+的数量count(+)数出来,那就意味着数组前count(+)个元素都是+,所以遍历 前count(+)个元素,把里面-的与count(+)之后的+交换一次位置,代码如下def sorted_string(string):

2021-01-10 22:10:03 888

原创 桶排序

今天看到一个简单又感觉巧妙的排序——桶排序如图所示,我们如何对5 3 5 2 8(0分-10分数范围内)进行排序?首先我们需要准备好题意0-10整个范围的桶li_tong,其中len(li_tong)=11,其中桶数组中的index表示0-10范围内的顺序分数值,数组中每个index下的值表示每个分数在带排序数据中出现的次数然后把带排序的数字都放入桶数组中的各个桶中最后将各个桶的代表的分数值顺序打印出来,则是排序后的结果,其中每个分数需要打印每个桶中的数字也就是带排序数组中数字出现的次数,便得到

2021-01-10 17:46:36 127

原创 Mysql系列1——删除记录后自增id仍从1开始

问题场景在mysql中测试某问题时涉及清空表记录,使用的语句为delete from table1;清空表中全部101条数据以后,当我再次写入数据后发现,自增ID不是从1开始了,而是从102开始。问题原因delete只是删除表中数据而不是清空表,差别在于只是数据被清空了,但是表本身的信息(其中包括对于自增ID的计数)并没有动,解决办法改用truncate table来进行删除,truncate table table1truncate能在删除表记录的同时,重置表信息,恢复和刚建好的

2020-08-08 16:14:30 926

原创 认识RESTful API

为了解决传统动静资源混合架构,在静态资源被大量重复访问时卡顿情况,CDN是极好的方案!CDN简介CDN(content delivery network)内容分发网络。简单来理解CDN是网络的边缘节点,是离用户最近的服务器节点,相当于在用户和源站点间增加一层CACHE(缓存)层,将源站点的静态资源缓存在CDN节点上,让用户根据自己需求在最近的节点获取内容,给用户最快的响应结果。CDN的贡献...

2020-05-07 23:28:37 275

原创 每日一题——移除元素

题目描述给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例 1:给定 nums = [3,2,2,3], val = 3,函数应该返回新的长度 2, 并且 nums 中的前两个元...

2020-05-03 18:18:44 286

原创 每日一题—— 删除排序数组中的重复项

题目描述给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。示例 1:给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。你不需要考虑数组中超出新长度后面的元素。示例 2...

2020-05-03 17:47:29 224

原创 每日一题——有效的括号

有效的括号题目描述:给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: “()”输出: true示例 2:输入: “()[]{}”输出: true示例 3:输入: “(]”输出: false示例...

2020-04-19 20:24:19 239

原创 每日一题——最长公共前缀

最长公共前缀题目描述编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例 1:输入: [“flower”,“flow”,“flight”]输出: “fl”示例 2:输入: [“dog”,“racecar”,“car”]输出: “”解释: 输入不存在公共前缀。说明:所有输入只包含小写字母 a-z 。题目链接:https://leetcod...

2020-04-19 16:59:25 309

原创 剑指Offer22——第一个只出现一次的字符

题目描述 在一个字符串(1&amp;lt;=字符串长度&amp;lt;=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置# -*- coding:utf-8 -*-class Solution: def FirstNotRepeatingChar(self, s): # write code here if s == '' or len(...

2018-05-19 11:48:19 295

原创 剑指Offer21——整数中1出现的次数

题目描述 求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数。# -*- coding:utf-8 -*-class Solution: def Numb...

2018-05-19 11:42:06 302

原创 剑指Offer20——顺时针打印矩阵

题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.思路: 题目其实不难主要是要把整个过程理清楚,主要的迭代吧,想清楚顺时针转圈的时候迭代值的变化情况# -*- codi...

2018-05-19 11:33:49 220

原创 剑指Offer19——矩形覆盖

题目描述 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?思路: 其实主要思路还是找规律吧,所以我直接用的比较具体的方法就是枚举然后找规律: # -*- coding:utf-8 -*-class Solution: def rectCover(self, number): # ...

2018-05-19 09:41:23 247

原创 剑指Offer17——跳台阶

题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。思路1: 其实题目很简单,很显然直接可以用递归来做,但是用递归做时间会太久,加上Python本身就不快,所以用递归不能在题目要求的时间范围内完成程序运行。#-*- coding:utf-8 -*-# __author__ = 'ziteng'# __time__ ='22:12'...

2018-05-18 16:23:03 237

原创 剑指Offer18——变态青蛙跳

题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。思路: 这个按照剑指Offer17那道题的找规律的思路来进行处理 其中当有n阶台阶的时候,它第一次跳有n种情况:它第一次跳了1阶,那跳法就是它跳剩下台阶的跳法,所以就是f(n-1);假如它第一次跳了2阶,那总跳法就是它跳完2阶跳剩下台阶的总跳法发f(n-2);。。。...

2018-05-18 16:18:52 281

原创 Python基础12——面向对象

面向对象编程(OOP)是一种程序设计思想。OOP把对象作为程序的基本单元,一个对象包含数据和操作数据的函数。 面向对象程序设计把计算机程序视为一组对象的集合,每个对象都可以接收其他对象发过来的消息,并处理这些消息,计算机程序的执行就是一系列消息在各个对象之间的传递。 Python是一种面向对象的语言,对于Python而言,一切皆对象,都有的数据类型都被视为对象,也可以自定义对象。自定义的数据类型

2018-05-03 21:20:09 291

原创 Linux基础命令3(centos7)

3.1 新建、删除用户1、新建用户adduser dudan #新建用户,这要在root用户下创建新用户,而且这样创建的用户没有sudo权限,要进行权限添加sudo usermod -a -G sudo dudan #添加权限,也要在root权限下进行添加,而且这个要下次登录以后才会生效#上面添加权限的命令我试过了在我的centos7上是不行的,所以可以直接在/etc/sudoers文件

2018-05-01 21:47:10 217

原创 Linux基本命令2(centos7)

2.1一些基本命令1、echo 输出echo 'hello world' #单独使用就是简单的输出echo hello world &gt; 1.txt #和重定向搭配使用,这样相当于把hello world写入论文1.txt中并覆盖原来的内容,1.txt不存在的话就自动创建这个文件(w)echo hello dudan &gt;&gt; 1.txt #在文件尾部...

2018-05-01 16:52:12 293

原创 Linux基本命令1(centos7)

1.1Linux目录的结构和文件类型 1、目录结构 Linux是没有Windows这种盘符说法的,它只有一个根目录,所有文件都在这个根目录下。 / 代表根目录 (系统文件) ~ 代表home目录/bin:用于存储二进制可执行命令文件 /home:家目录,我们开发过程中所有的行为基本都发生在这里,每一个用户在这个目录下都有与之对应的用户名命名的文件夹,我们一登录进入的就是ho...

2018-04-30 23:51:19 279

原创 Python基础11——模块和包简介

11.1模块 1、内置模块 模块其实就是一个XXX.py文件(Python文件下LIb文件里装的都是Python内置模块) 比如: os 和操作系统有关 os.path sys 和系统有关 sys.path re 正则表达式 (后面会讲几个常见的模块,这里就不再举例 ) 2、第三方模块 需要另外安装不是Python自带的库 比如: requests 页面访问...

2018-04-30 15:40:55 225

原创 Python基础10——迭代器和生成器

10.1迭代器 可以被next()函数调用并不断返回下一个值的对象称为迭代器:Iterator 迭代器对象要求支持迭代器协议的对象,在Python中,支持迭代器协议就是实现对象的_ iter ()和 next _()的方法。li = []for i in range(1,11): #for后面要是可迭代对象 li.append(i)print(li)li1 = ...

2018-04-26 23:26:30 253

原创 Python基础9——文件操作和异常处理

1、Python中的编码: ASCII 、 Unicode 、utf-8 、gbk 对于计算机来说,计算机只认识0 1字符 (1)ASCII 8位二进制编码,理论上可以存256个字符,但是在ASCII表上只有127个字符,因为英文本身就简单,每个字符一个字节(8bit=1byte) (2)gbk、gb2312 汉字,常用的有5000个,算上简体繁体啥的,有2万多个 GB2312是

2018-04-25 22:39:00 683

原创 Python基础8——函数进阶

参数的定义顺序:必备参数(位置)、默认参数、不定长参数、关键字参数。关于传参需要注意的是: 默认参数不能放在必备参数前面,但是不定长参数在前面,默认参数可以放到必备参数前面,但是一定要加上参数名。8.1几个常见的内置函数 查看内置函数,后面70+个都是内置函数>>> dir(__builtins__)['ArithmeticError', 'AssertionError', 'At

2018-04-25 15:54:02 341

原创 Python基础7——函数基础

7.1函数的定义 函数就是对代码进行封装。把实现某一功能的相同代码,进行封装到一起。下次需要使用时,直接调用即可,不需要再进行代码编写。 定义方法:def function_name(params): block return expression(表达式)/valuedef :表示定义一个函数 function_name :函数名,和变量名的命名要求相同,以字母或者...

2018-04-24 21:54:24 266

原创 Python基础6——控制流程与其他语句

三个循环,三个关键字 先来看看什么是可迭代对象:所有序列类型:list、tuple、str非序列类型自己定义的带有 _ iter _对象的1.for循环: for i in iterator: 一定要是一个可迭代对象。for i in [1,2,3,4]: print (i)2.ifif 条件语句: 执行语句elif 条件语句: #这个可以有多个

2018-04-19 11:44:39 201

原创 Python基础5——字典(dict)与集合(set)

字典和集合都是散列表,也就是无序。 字典是Python中唯一内建的映射类型。字典中的值并没有特殊的顺序,但是都存储在一个特定的键(key)下。键可以是数字,字符串,甚至是元组。5.1创建字典dict 字典由一系列的键值对构成 dict ={key:value}:d = {'Marry':110,'Mac':120,'Honey':130}字典特点: - 字典中键是唯一的,值不是唯一的。因

2018-04-18 22:52:13 271

原创 Python基础4——字符串

字符串是不可变对象。 所有标准的序列操作都同样适用于字符串。4.1字符串格式化与格式化输出字符串格式化使用字符串格式化操作符即百分号%来实现。 基本的转换说明符:%字符:标记转换说明的开始。转换标志(可选):-表示左对齐(默认是右对齐);+表示在转换值之前要加上正负号;“ ”字符表示正数之前应该保留空格;0表示转换值若位数不够则用0填充。最小字段宽度(可选):转换后的字符串至少应该具有该值

2018-04-18 12:03:41 287

原创 python基础3——列表和元组

列表是可变的。一、list函数 使用list函数可以将其他序列数据转换为列表形式,也就是可以利用list函数进行数据类型的转换,之后会专门写一篇是说明几种数据类型转换的内容的。>>> list(s)['h', 'e', 'l', 'l', 'o']>>> t = (1,2,3,4)>>> list(t)[1, 2, 3, 4]二、基本的列表操作 前面已经写过了所有序列类型的数据的共有操作

2018-04-17 19:50:31 723

原创 Python基础2——Python变量与基本数据类型

一、Python变量 Python的变量其实就是一个引用(索引),指向内存中的对象。所以变量无类型,对象有类型。 ①a = 1表示让a指向内存中数据类型为整型,值为1的对象 ②a = b表示让b指向a指向的对象 ③a = 2表示a指向了一个新的对象2,但是b还是指向1 假如b=3也就是b又指向了3这个对象,此时1就没有索引指向它,Python就会自动将没有引用指向的对象销毁,释放相应内

2018-04-15 16:40:34 420

原创 Python基础1——Python简介

Python是一门完全面向对象的语言,之所以这样说是因为在Python中任何皆对象:Python 中的一切都可以赋值给变量或者作为参数传递给函数。 Python是一门解释型语言。 简单来说下解释型语言和编译型语言的区别,我们一般编程都用的是高级语言,但是计算机只能理解和运行机器语言,所以要把高级语言翻译成机器语言,计算机才能运行高级语言所编写的程序。那翻译的话有两种方式,一种是编译一种是解释。...

2018-04-15 15:55:10 400

原创 剑指Offer16——删除链表中重复的结点

题目描述 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5 思路一:构造一个新的链表,把不重复的结点链接进去就好了# -*- coding:utf-8 -*-# class ListNode:# def __init__(self, x):#

2018-04-10 16:05:24 180

原创 剑指Offer15——链表中环的入口

题目描述 一个链表中包含环,请找出该链表的环的入口结点。 思路:题目相对来说比较简单,直接遍历找到第一个曾经出现过得结点就是环的入口# -*- coding:utf-8 -*-# class ListNode:# def __init__(self, x):# self.val = x# self.next = Noneclass Solutio

2018-04-09 16:19:12 146

原创 剑指Offer14——两个链表的第一个公共结点

题目描述 输入两个链表,找出它们的第一个公共结点。思路一:两个链表如果有公共结点的话那么他们整体肯定是呈Y字形,那我可以先让长的链表往前走几步,直到它后面的长度和短的链表一样长的时候再让两者一起走,到达的第一个公共结点就是所求啦~ # -*- coding:utf-8 -*-# class ListNode:# def __init__(self, x):# sel

2018-04-09 10:07:18 205

原创 剑指Offer(13)——复杂链表的复制

题目描述 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空) 思路: 关于链表的相关操作一定要注意的就是指针的使用,遇到复杂的问题我们可以将问题分成几个部分分别处理,然后拼接起来就可以解决复杂问题了。第一步:在原链表的基础上,在

2018-04-08 12:26:26 173

原创 剑指Offer(12)——合并两个排序的链表

题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 利用比较通用的做法: # -*- coding:utf-8 -*-# class ListNode:# def __init__(self, x):# self.val = x# self.next = Noneclass Solution:

2018-04-07 22:46:47 143

原创 剑指Offer(11)——反转链表

题目描述 输入一个链表,反转链表后,输出链表的所有元素。 解: 先定义一个last指针,用来指向pHead指针的下一个结点 然后x0结点应该指向None,也就是pHead.next=last,它会成为我们反转之后的最后一个结点,让last指向x0:last=pHead,pHead = pHead.next,这样才完整的将x0给分离出来了 然后再相同的步骤,让pHead往后移,然后依

2018-04-07 21:57:33 191

原创 剑指Offer(10)——链表中倒数第k个结点

题目描述 输入一个链表,输出该链表中倒数第k个结点。思路:因为要输出倒数第K个结点,所以我们可以设置两个指针,两个指针之间相差K,也就是第一个指针先走K步,然后让第二个指针再走,一直保持两者之间相差K,这样让第一个指针走到最后时,第二个指针也就正好到达倒数第K个结点。 # -*- coding:utf-8 -*-# class ListNode:# def __init__(self

2018-04-07 21:30:29 140

原创 剑指Offer(9)——从尾到头打印链表

题目描述 输入一个链表,从尾到头打印链表每个节点的值。对于链表来说,每个结点都是一个二元组,包含元素域和链接域,也就是一个存储元素的值,一个存储下一个结点的地址,这道题对直接的思路就是遍历整个链表,将所有结点的元素存储在一个数组中,然后倒序输出得到的数组。# -*- coding:utf-8 -*-# class ListNode:# def __init__(self, x...

2018-04-07 21:01:38 163

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除