- 博客(20)
- 资源 (1)
- 收藏
- 关注
原创 牛客网 剑指offer
二进制中1的个数```javapublic class Solution { public int NumberOf1(int n) { int sum = 0; if(n<0) { n = (n & 0x7FFFFFFF); sum = sum + 1; } while((n^0)!=0){ if((n&1)==1) {
2020-06-13 16:01:12 132
原创 人工智能 北京优质课程
数学1847 命题逻辑(布尔逻辑)1879 一阶逻辑 扩展了布尔逻辑,增加了对象和关系1902 指称理论 揭示如何讲逻辑中的对象与对象相关联计算什么是可计算的Alan Turing: 精确描述哪些函数是可计算的科伯姆和埃德蒙兹:计算的易处理性 针对一个问题是否便于计算机处理德卡普:NP完全性理论P:多项式时间NP:不确定性多项式时间:TSPNP-complete NP完:...
2019-09-17 22:50:09 224
原创 关于bigrams的问题
<generator object bigrams at 0xXXXXXXXX>说明返回的是迭代器,我们可以将其转化为链表打印出来直接在前面加上一个list()
2019-08-04 10:48:30 299
原创 RomantoInteger java
public class RomantoInteger { public int romanToInt(String s) { int sum = 0; for(int i=0; i<s.length(); i++) { boolean flag = false; int temp = 0; switch (s.charAt(i)) { case 'I':...
2019-07-26 12:41:09 90
原创 吴恩达机器学习(第一天)
1.计算机程序从经验E中学习解决某一任务T,进行某一性能度量P。通过P测定在T上的表现因经验E而提高。2.监督学习:我们教计算机如何学习3.无监督学习:我们让计算机自己学习监督学习给算法一个数据集其中包含了正确答案,算法的目的是给出更多的正确答案...
2019-07-22 10:42:48 117
原创 LeetCode Reverse Integer
public class ReverseInteger { public int reverse(int x) { int result = 0; while (x != 0) { if(result >= - Math.pow(2, 31) / 10 && result <= Math.pow(2, 31) / 10 ) { result = ...
2019-07-16 10:53:42 65
原创 Leetcode AddTwoNumbers
public ListNode addTwoNumbers(ListNode l1, ListNode l2) { ListNode temp = l1; ListNode last = temp; while(temp != null && l2 != null) { if(temp.val + l2.val >= 10) { temp.val =...
2019-07-16 10:08:22 99
原创 组合,聚合,依赖,关联的个人体会
依赖简单的理解,依赖就是一个类A使用到了另一个类B,而这种使用关系是具有偶然性的、临时性的、非常弱的,但是类B的变化会影响到类A。比如某人要过河,需要借用一条船,此时人与船之间的关系就是依赖。表现在代码层面,为类B作为参数被类A在某个method方法中使用。在UML类图设计中,依赖关系用由类A指向类B的带箭头虚线表示。只是单单方法需要这个参数关联关联体现的是两个类之间语义级别的一种强依赖...
2019-06-23 22:04:11 398
原创 白盒框架、黑盒框架的体会
框架可分为白盒(White-Box)与黑盒(Black-Box)两种框架。白盒框架的原理与实现白盒框架是基于继承的框架所谓白盒即具备可视性,被继承的父类的内部实现细节对子类而言都是可知的。利用白盒框架的应用开发者通过衍生子类或重写父类的成员方法来开发系统。层次结构比较清晰。子类的实现很大程度上依赖于父类的实现,这种依赖性限制了重用的灵活性和完全性。父类中的方法子类一定拥有,要么继承,要么重...
2019-06-21 15:39:11 336
原创 关于重写哈希函数
Hashcode最好被设计为键计算后的索引应该平滑、均匀的分布在所有范围内。但是偶尔冲突也会发生,例如两个键计算出了同样的索引。因此哈希表通常存储的是一个键值对的列表而非一个单个的值,这通常被称为哈希桶(hash bucket)。而在Java中,键值对就是一个有着两个域的对象。当插入时,你只要像计算出的索引位置插入一个键值对。当查找时,你先根据键哈希出对应的索引,然后在索引对应的位置找到键值对列表...
2019-06-21 09:29:21 409
原创 Liskov替换原则
Barbara Liskov于1988年提出了著名的替换原则:"如果对于类型S的每个对象O1存在类型T的对象O2,那么对于所有定义了T的程序P来说,当用O1替换 O2并且S是T的子类型时,P的行为不会改变。"通俗地讲,就是子类型能够完全替换父类型,而不会让调用父类型的客户程序从行为上有任何改变。Liskov替换原则 基于这样的一个事实,那就是客户程序在调用某一个类时,实际上是对该类的整个继承体系...
2019-06-20 23:39:54 233
原创 specifications的个人体会和总结
经过重新对specifications章节的学习,有了新的体会Specification的作用规格说明就是类似于一个“防火墙”一样将客户和实现者隔离开,使得客户不必知道这个单元是怎么被使用的,譬如不用阅读程序源码。而实现者也不用考虑这个单元如何被使用,因为实现者这里就已经以客户遵循规格说明来实现。而这种隔离实现了“解耦”。前置条件前置条件是客户的义务,确保了方法被调用时所在的状态。只有客户...
2019-06-17 22:02:28 163
原创 快照图
尝试画快照图在MIT的数据库中查找并返回用户的9位数ID:/** * @param username username of person to look up * @return the 9-digit MIT identifier for username. * @throws NoSuchUserException if nobody with username is in MIT...
2019-06-15 00:31:00 141
原创 外部质量因素
正确性(Correctness)正确性是软件产品按照预先定义的“规约”(specification)执行其任务的能力,对于软件开发者来说,正确性是至高无上的质量指标。保证软件的正确性有几种方法。第一种是分层(Conditional),将整个软件有层次性地区分开来,每一层保证自己的正确性,同时假设其下层是正确的。第二种是测试和调试(Testing and debugging),其目的在于发现不正确...
2019-06-11 11:38:09 614
原创 关于JLabel中不能换行问题
在写GUI时发现JLabel即是String中加上了"\n"也不能换行于是可以采用在加入的String前面加上"",此时之后的“”可以实现换行
2019-06-07 00:23:59 1047
原创 针对lab5的优化
在经过反复修改轨道系统代码,发现关键的一点,一个好的hashcode可以大大提高hashMap的性能。比如我重写了Track的hashcode大大提高了我创建行星系统的速度。可以直接用eclipse自带的重写hashcode和equals的方法在Source->Generate hashcode and equals...
2019-05-30 19:16:47 144
原创 GOF—Builder模式
Builder模式如同建造一个大楼,需要先打牢第几,搭建框架,然后自下而上地一层一层盖起来。通常在建造具有复杂结构的物体时,我们需要首先建造组成这个物体的各个部分,然后分阶段将他们组装起来Builder模式中的登场角色Builder(建造者)Builder角色负责定义用于生成实例的接口(API)。Builder角色中准备了用于生成实例的方法ConcreteBuilder(具体的建造者)...
2019-04-19 20:59:36 237
原创 5.2 Construction for Reuse课堂笔记
1 Designing reusable classes(1) Inheritance and overriding见之前课程内容(2)Polymorphism, subtyping and overloading1.多态的三种类型Ad hoc polymorphism:一个函数可以有多个同名的实现(方法重载)– Parametric polymorphism:一个类型名字可以代表多个...
2019-04-14 12:20:48 178
原创 5.1 Metrics, Morphology and External Observations of Reusability 笔记
1.什么是软件复用软件复用就是通过使用已存在的软件组成来实现或者更新软件系统的过程。2.为什么要使用软件复用1.成本有效性和及时性2.可生成可靠的软件3.标准化3.可复用性软件应当做到(1)简单(2)良好的可移植性和兼容性(3)可接受且灵活(4)可扩展(5)通用和参数化(6)模块化(7)将变化限制在局部(8)稳定4.复用的等级(1)Source code level...
2019-04-08 22:43:08 91
翻译 测试
通过分区的方法选择测试用例选择合适的测试用例是一个具有挑战性但是有缺的问题。我们即希望测试空间足够小,以便能够快速完成测试,又希望测试用例能够验证尽可能多的情况。为了达到这个目的,我们可以先将输入空间划分为几个子域(subdomains) ,每一个子域都是一类相似的数据。如上图所示,我们在每个子域中选取一些数据,它们合并起来就是我们需要的输入用例。分区背后的原理在于同一类型的数据在程序中的行...
2019-03-25 20:25:11 78
哈工大算法1.1
2018-11-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人