- 博客(38)
- 收藏
- 关注
转载 三句话讲清Java抽象类的构造函数
可以有,抽象类可以声明并定义构造函数。因为你不可以创建抽象类的实例,所以构造函数只能通过构造函数链调用(Java中构造函数链指的是从其他构造函数调用一个构造函数)例如,当你创建具体的实现类。 现在一些面试官问,如果你不能对抽象类实例化那么构造函数的作用是什么? 好吧,他可以用来初始化抽象类内部声明的通用变量,并被各种实现使用 。另外,即使你没有提供任何构造函数,编译器将为抽象类添加默认的无参数的构造函数,没有的话你的子类将无法编译,因为在任何构造函数中的第一条语句隐式调用super(),Java中默认超类的
2020-06-11 18:45:26
311
原创 LeetCode题解精选(二)
69-x的平方根:方法汇总,这篇博客写的不错,其实记住牛顿迭代和二分就行 此处贴上牛顿迭代的递归方法和迭代方法,不过个人感觉此处有些不恰当,就是浮点数的比较不宜使用 ==,应该定义一个精度eps=1e-6,做差比较fabs(绝对值)与eps大小 class Solution { int s; public int mySqrt(int x) { s=x; if(x==0) return 0; return ((int)(sqrts(x))); }
2020-06-08 17:30:43
260
原创 LeetCode题解精选(一)
简单(Easy): 1 - 哈希表(恒定时间查找)并且一次遍历在进行迭代并将元素插入到表中的同时,我们还会回过头来检查表中是否已经存在当前元素所对应的目标元素。如果它存在,那我们已经找到了对应解,并立即将其返回。(官方题解就挺好) 7-整数反转 :主要是整数溢出的判断,官方的方法就是硬记住-2^31 和 2^31-1 的个位数,但是这篇题解很巧妙,先用long去存储,再判断强制转换为int后与原数是否相同。 9-回文: 官方给的依旧优雅,为了防止溢出选择转一半的方法,重点在于如何判断到一半了。不过…值得注
2020-06-08 09:18:58
294
原创 c++编码规范与知识笔记——(四)异常
老规矩,先上一段编码规范。 1. variable names for (int i = 1; i < 5; i++){ for (int j = 1; j <= n1; j++){ if (n1 % j == 0) g = j; } } 25. Iterator variables should be called i, j, k etc. Variables named j, k etc. should be used for nes
2020-05-22 21:26:36
250
原创 c++编码规范与知识笔记(二)
首先补充一下上一节的拷贝构造函数使用场景: 在什么情况下会调用拷贝构造函数呢?:(有三种情况) (1)用类的一个对象去初始化另一个对象时 ! (2)当函数的形参是类的对象时(也就是值传递时),如果是引用传递则不会调用 !! (3)当函数的返回值是类的“对象或引用时” !!! #include <iostream> using namespace std; class A { private: int a; public: A(int i){a=i;} //内联的构造函数 A(A &am
2020-05-18 16:56:05
422
原创 c++编码规范与知识笔记(一)
良好的代码规范和编程习惯大有裨益,特此收集了一些编码规范以供参考! 欢迎各位进行指正 下面是一些代码规范和常见术语的中英文互译,以及部分知识笔记 1. int& r = a // not int &r = a 2. The prefix is should be used for boolean variables and methods. 布尔变量/函数的命名应使用前缀“is” 例如:isSet, isVisible, isFinished, isFound, isOpen
2020-05-17 11:43:11
343
原创 基于python数据结构与算法(五)——再谈动态规划
一. 博物馆大盗问题: #这个动态规划的思路与常见的貌似不同,常见的可看北航课件 # 宝物的重量与价值 第零号设为None表示从1计数 tr = [None,{'w':2,'v':3},{'w':3,'v':4},{'w':4,'v':8},{'w':5,'v':8},{'w':9,'v':10}] # 大盗最大承重 max_w = 20 # 初始化二维列表m[(i,w)] # 表示前i个...
2020-05-12 16:06:43
202
原创 基于python数据结构与算法(四)——递归
一. 递归思想: 将问题分解为规模更小的去解决 举个例子: 案例一:递归实现任意进制的转化 def toStr(n,base): convertString = "0123456789ABCDEF" if n < base: return convertString[0] else: return toStr(n//base,base) + convertString[n%ba...
2020-05-04 21:30:47
376
原创 基于python数据结构与算法(三)——List
一 . 无序表: 1. List的操作: python内置有List数据结构,不过是基于顺序存储实现的并进行了优化 不过我们可以用另一种方式优化python的List(实现pop带参数的操作是O(1)) 为此,我们使用链表实现无序表。 无序表必须要有堆第一个节点的引用信息设置一个属性head,保存对第一个节点的引用 空表的head为None class UnorderedList: de...
2020-05-03 17:08:47
248
原创 基于python数据结构与算法(二)——队列
一. 抽象数据类型Queue: 队列的尾:rear,首:front(FIFO) Python实现ADT Queue: 二. 队列的应用: 1. 约瑟夫问题(击鼓传花): 代码实现: from pythonds.basic.queue import Queue def hotPotato(namelist, num): simqueue = Queue() for name ...
2020-05-03 11:30:19
354
原创 基于python数据结构与算法(一)
课程网址 一.算法分析: py常用的数据结构: List列表数据常用的操作性能: (1)列表增长可以使用append和 “+”,但是前者执行时间是O(1),后者是O(n+k)其中k是被追加的列表长度。(因为+号相当于是把两个列表复制到了一个列表中) (2)性能比较: 首先介绍一下常用的计时模块:最普通的:time.time(),但是通常需要循环执行函数几次才能计上时。高级一点的timeit模...
2020-05-02 23:05:55
368
原创 Summary--算法图解(二)BFS
一. 散列表 ,散列函数是“将输入映射到数字”。(类似数组索引)。你可能根本不需要自己去实现散列表,任一优秀的语言都提供了散列表实现。Python提供的散列表实现为字典,你可使用函数dict来创建散列表——键映射到值。生活中的实例就比如DNS解析,将IP与网址域名映射。 将散列表用作缓存 。缓存是一种常用的加速方式,所有大型网站都使用缓存,而缓存的数据则存储在散列表中!比如Facebook不仅缓...
2020-05-01 10:56:45
390
原创 Summary--算法图解
本文主要补充《我的第一本算法书》总结缺失的,以python为主要实现方式 一. 关于O: 一些常见的大O运行时间:将大O转换为操作数进行化简 二. 选择排序: 数组读取是O(1)插入是O(n),相反链表读取是O(n) 插入是O(1) 所有函数调用都进入调用栈 快速排序使用分而治之的策略(D&C)。思想是:找到基线条件不断将问题分解。 Tip:编写涉及数组的递归函数时,基线条件...
2020-04-30 20:58:41
882
原创 Summary--我的第一本算法书
一. 基础知识与数据结构 选择排序O(n^2) 快速排序O(nlogn) 对链表的操作所需的运行时间到底是多少呢?在这里,我们把链表中的数据量记成 n。访问数据时,我们需要从链表头部开始查找(线性查找),如果目标数据在链表最后 的话,需要的时间就是 O(n)。 另外,添加数据只需要更改两个指针的指向,所以耗费的时间与n 无关。如果已经到达了添加数据的位置,那么添加操作只需花费O(1) 的时间。删...
2020-04-30 16:53:07
788
转载 Python刷题速成
本文链接 # 用井字符开头的是单行注释 """ 多行字符串用三个引号 包裹,也常被用来做多 行注释 """ #################################################### ## 1. 原始数据类型和运算符 #################################################### # 整数 3 # =&...
2020-04-30 09:15:59
310
原创 Git(九)--自定义Git
一. 自定义Git: 在前面的学习中,我们已经配置了user.name和user.email,实际上,Git还有很多可配置项。 比如: 让Git显示颜色,会让命令输出看起来更醒目: $ git config --global color.ui true 有些时候,你必须把某些文件放到Git工作目录中,但又不能提交它们,比如保存了数据库密码的配置文件啦,等等,每次git status都会显示...
2020-04-16 17:20:25
258
2
原创 Git(八)--使用Github
一. 何为Github: 我们一直用GitHub作为免费的远程仓库,如果是个人的开源项目,放到GitHub上是完全没有问题的。其实GitHub还是一个开源协作社区,通过GitHub,既可以让别人参与你的开源项目,也可以参与别人的开源项目。在GitHub出现以前,开源项目开源容易,但让广大人民群众参与进来比较困难,因为要参与,就要提交代码,而给每个想提交代码的群众都开一个账号那是不现实的,因此,群众...
2020-04-16 17:20:12
178
原创 Git(七)--标签管理
一. 标签管理: 发布一个版本时,我们通常先在版本库中打一个标签(tag),这样,就唯一确定了打标签时刻的版本。将来无论什么时候,取某个标签的版本,就是把那个打标签的时刻的历史版本取出来。所以,标签也是版本库的一个快照。 Git的标签虽然是版本库的快照,但其实它就是指向某个commit的指针(跟分支很像对不对?但是分支可以移动,标签不能移动),所以,创建和删除标签都是瞬间完成的。 Git有comm...
2020-04-16 17:20:00
196
原创 Git(六)--分支管理(下)
一. 多人协作: 先来复习一下概念: 创建本地仓库:我们打算在g/Git下面创建版本库,使用命令—git init(这个时候,查看一下g盘Git目录下会多了一个.git的隐藏文件夹) 现在我们在g/Git目录下新建一个文件test.txt,内容写“Hello Git!”。添加单个文件到本地仓库:git add并且执行提交命令git commit,才能把添加的文件提交到本地仓库(不是远程仓库!!)...
2020-04-16 17:19:47
221
原创 Git-cheatsheet&命令最全汇总
More:https://gitee.com/liaoxuefeng/learn-java/raw/master/teach/git-cheatsheet.pdf
2020-04-14 23:56:32
1626
转载 git建立本地仓库并推送到远程
git将本地文件关联到远程仓库并提交的使用心得 先在github上或者你的服务器上创建一个仓库,例如项目名字为test (1)注册...
2020-04-14 20:42:11
632
原创 Git(六)--分支管理(中)
让我们接着上面的那一篇说 写在前面 这篇博客如果您没有看得特别清楚,建议您不妨看看这篇。私认为两篇一起食用最佳! 四 . 分支管理策略: 通常,合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息。 如果要强制禁用Fast forward模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息。 下面我们实战一下...
2020-04-14 14:58:43
227
原创 Git(五)--分支管理(上)
一 .了解分支: 分支在实际中有什么用呢?假设你准备开发一个新功能,但是需要两周才能完成,第一周你写了50%的代码,如果立刻提交,由于代码还没写完,不完整的代码库会导致别人不能干活了。如果等代码全部写完再一次提交,又存在丢失每天进度的巨大风险。 现在有了分支,就不用怕了。你创建了一个属于你自己的分支,别人看不到,还继续在原来的分支上正常工作,而你在自己的分支上干活,想提交就提交,直到开发完毕后,再...
2020-04-14 12:40:58
245
原创 Git(四)--远程仓库
一. 远程仓库介绍: 开发的实际情况往往是这样,找一台电脑充当服务器的角色,每天24小时开机,其他每个人都从这个“服务器”仓库克隆一份到自己的电脑上,并且各自把各自的提交推送到服务器仓库里,也从服务器仓库中拉取别人的提交。我们完全可以自己搭建一台运行Git的服务器(可以但没必要????),不过现阶段,为了学Git先搭个服务器绝对是小题大作。好在这个世界上有个叫GitHub的神奇的网站,从名字就可以看出,...
2020-04-14 10:49:03
221
原创 Git(三)--修改
一. 管理修改: Git跟踪并管理的是修改,而非文件。我们现在这样操作:第一次修改 -> git add -> 第二次修改 -> git commit。 $ cat readme.txt Git is a distributed version control system. Git is free software distributed under the GPL. Git ...
2020-04-14 09:56:15
195
原创 Git(二)--版本回退与分区概念
一 .版本回退: git具有"快照"功能,每当你觉得文件修改到一定程度的时候,就可以“保存一个快照”,这个快照在Git中被称为commit。一旦你把文件改乱了,或者误删了文件,还可以从最近的一个commit恢复,然后继续工作,而不是把几个月的工作成果全部丢失。在Git中,我们用git log命令查看历史记录。 比如,我们对readme进行了三次修改。显示的记录是从最近到最早。 $ git log ...
2020-04-14 09:56:00
191
原创 Git(一)--初识Git
初识Git 众所周知,Git是目前世界上最先进的分布式版本控制系统(没有之一)???? Git有什么特点?简单来说就是:高端大气上档次!它可以能记录每次文件的改动。避免甩锅… 简单了解一下集中式和分布式: 先说集中式版本控制系统,版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。中央服务器就好比是...
2020-04-14 09:55:33
193
原创 py刷题(三)
# 5 - 6 #输入一个列表,去掉列表中重复的数字,按原来次序输出! """可以用replace去掉【】""" lst = input() lst_ = [] lst = lst.replace("[", "") lst = lst.replace("]", "") lst = lst.replace(",", "") for i in lst: if i not in lst_: ...
2020-03-29 22:54:53
412
原创 py刷题(二)
# 3 - 7 n = int(input()) lst = list(map(int,input().split())) max = lst[0] index = 0 for i in range (1,len(lst)): if (max < lst[i]): max = lst[i] index = i print('{} {}'.format(...
2020-03-29 22:47:50
438
原创 py刷题
# 1-2 ***** # 在同一行依次输入三个值a,b,c,用空格分开,输出b*b-4*a*c的值 a,b,c = input().split() a,b,c = eval(a),eval(b),eval(c) # eval代替int float d = b*b-4*a*c print(d) # 1-1 # 本题目要求读入2个整数A和B,然后输出它们的和。 """ 这是回车分隔 a=i...
2020-03-29 22:44:45
777
原创 初学requests+xpath爬取网站
import requests from lxml import etree # 注:该网站是电影资源列表,不知道为什么反应速度很慢,通常需要多尝试几次 # 实际上xpath获取内容的关键在于 1.找对路径(源代码) 2. 处理数据编码 f12查看是gbk还是utf-8 url_base = "https://www.ygdy8.net/html/gndy/dyzz/index.html" h...
2020-03-14 15:43:27
255
原创 python碎片化知识(二)
Python(二) (一)集合: 特点:无序,不支持下标,去重 操作: 1. add(): 增加一项(位置不确定在哪) 2.update():追加数据为序列 s1={10,20} s1.update(100) print(s1)#报错 s1={10,20} #s1.update(100) s1.update([100,200,300]) s1.update(‘asdfff’) print(s1)...
2020-03-10 14:08:46
169
原创 爬虫基础(三)
案例:爬取xx网的房屋交易信息方便我们比较 import requests from bs4 import BeautifulSoup header = { # "Host": 'www.lianjia.com', "User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, ...
2020-02-23 21:30:50
144
原创 爬虫基础(二)
#爬取百度网页代码: from urllib import request # url = 'http://www.baidu.com'# 我写的 url = 'https://www.baidu.com/' # 我复制的 header = { 'User-Agent': "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537...
2020-02-22 14:41:09
175
原创 爬虫基础
注:本文代码无法直接复现 建议看思路具体亲自去尝试写一下 后面争取更新一个直接可复用的代码案例 # 爬虫:按照一定的规则 自动的 抓取 万维网信息 程序 脚本 # 如果 用python 可以做到 模仿 人类发送请求 # 如果 服务器 接收后 骗过 浏览器 让他以为是一个真实的用户 # 服务器 返回后 我们只要 接收他的返回值 # 然后 自己解析 # 把解析后 有用的信息 留下 保...
2020-02-21 23:01:13
136
原创 Python术语对照表(一)
>>> 交互式终端中默认的 Python 提示符。往往会显示于能以交互方式在解释器里执行的样例代码之前。 … 可以是指: 交互式终端中输入特殊代码行时默认的 Python 提示符,包括:缩进的代码块,成对的分隔符之内(圆括号、方括号、花括号或三重引号),或是指定一个装饰器之后。 Ellipsis 内置常量。 argument – 参数 在调用函数时传给 function (或...
2020-02-20 22:55:40
822
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅