- 博客(25)
- 收藏
- 关注
原创 2019/4/26
阅读String类compareTo() 方法源码以及发现的问题compareTo()方法public int compareTo(String anotherString) { int len1 = value.length; int len2 = anotherString.value.length; int lim = Math.min(l...
2019-05-03 20:20:54 112
原创 2019/3/8
根据每日 气温 列表,请重新生成一个列表,对应位置的输入是你需要再等待多久温度才会升高的天数。如果之后都不会升高,请输入 0 来代替。例如,给定一个列表 temperatures = [73, 74, 75, 71, 69, 72, 76, 73],你的输出应该是 [1, 1, 4, 2, 1, 1, 0, 0]。提示:气温 列表长度的范围是 [1, 30000]。每个气温的值的都是 [3...
2019-03-08 13:17:04 111
原创 2019/3/2
最小栈的设计设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。push(x) -- 将元素 x 推入栈中。pop() -- 删除栈顶的元素。top() -- 获取栈顶元素。getMin() -- 检索栈中的最小元素。示例:MinStack minStack = new MinStack();minStack.push(-2);minStack....
2019-03-02 10:38:53 267
原创 2019/2/28
打开转锁盘你有一个带有四个圆形拨轮的转盘锁。每个拨轮都有10个数字: '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' 。每个拨轮可以自由旋转:例如把 '9' 变为 '0','0' 变为 '9' 。每次旋转都只能旋转一个拨轮的一位数字。锁的初始数字为 '0000' ,一个代表四个拨轮的数字的字符串。列表 deadends 包含了一组死亡数...
2019-02-28 19:56:49 105
原创 2019/2/24
二维vector初始化vector<vector<int>> myVector(height, vector<int>(width));这是我见过的最简单的代码了,vector<int>()类似强制类型转换,会生成一个size=width大小的vector。pair对象pair是一种模版类型,可以把两种类型组合成一个对象。用途有很多种,比如...
2019-02-24 22:08:47 89
原创 c++双重指针数组
c++指针数组在使用的时候更加体现其“指针”的特性。#include <iostream>using namespace std;int main (int argc, const char* argv[]) { int** arrp; int arr[4][5]; arrp = new int* [4]; for (int i = 0; i !=...
2018-11-25 22:29:36 1330
原创 Thinking in Java 第十章练习6 默认构造器的权限
题目: 在第一个包中创建一个至少有一个方法的接口。然后在第二个包中创建一个类,在其中增加一个protected的内部类以实现那个接口。在第三个包中,继承这个类,并在一个方法中返回这个protected内部类的对象,返回的时候向上转型为第一个包中的接口类型。//InnerClass/AInterface.javapackage InnerClass.AInterface;pu...
2018-08-16 09:18:03 357 1
原创 Thinking in Java 嵌套接口
这是为了完整接口语法而形成的特性,中文译版不是特别清楚,查证了英文原版后得到自己的理解。//: interfaces/nesting/NestingInterfaces.java package interfaces.nesting; class A { interface B {void f(); } public class BImp implem...
2018-08-15 11:43:11 141
原创 Thinking in Java 第九章练习四
创建一个不包含任何方法的抽象类,从它那里导出一个类,并添加一个方法。创建一个静态方法,它可以接受指向基类的引用,将其向下转型到导出类,然后再调用该静态方法。在main()中,展现它的运行情况。然后,为基类中的方法加上abstract声明,这样就不再需要进行向下转型。这个描述看了让人感觉云里雾里的,不是翻译的锅,原文也各种省主语。总之是花了很大的力气才弄明白题目想表达什么//Ma...
2018-08-14 16:13:39 263 2
原创 正则表达式
一分钟使用正则表达式最基本的正则表达式结构 符号 意义 括号 []内是需要匹配的字符,{}里是指定匹配字符的数量,()对表达式进行分组 ^ 表示正则表达式的开始 $ 表示正则表达式的结束$|表示正则表达式的结束正则表达式就是在用一定的规则描述字符串。这个描述可以被用于未知字符串的验证,查找和替换。基本规则普通字...
2018-07-21 15:27:45 158
原创 Bootstrap的文件内容
目录结构 bootstrap/ ├── dist/ │ ├── css/ │ └── js/ ├── docs/ │ └── examples/ ├── js/ └── scss/如果你下载的是Bootstrap的源码包,主要的结构就会像这个样子。dist/文件夹下面的内容和你下载预编译的包的内容是一样的。docs/目录下面有官方...
2018-05-28 08:31:53 3285
原创 从HelloWorld说事
接上一节搭建环境部分,我们写出了第一个实例——Hello World!接着我们要从这个实例入手,进一步学习。<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content=&quo
2018-05-21 08:39:23 119
原创 Bootstrap环境
简介Bootstrap是一个用于快速开发Web应用与网页的一个前端框架。 具有: 移动设备优先 浏览器支持广泛 容易上手 相应式的设计 ……搭建环境直接去Bootstrap的官网下载压缩包或者源码,但最终是需要使用到源码。最后把它放到项目里面去并引用就好了。标准入门<!DOCTYPE html><htm...
2018-05-13 23:12:18 137
原创 Android2048实战练习小结
从2048学习GridLayout学习安卓时候,自己做了一个2048的练习,东西都是自己边做边学的。 这款游戏的结构还是十分简单的,核心的逻辑在中间4*4的版面。 我之前写过Web前端,所以我想这个游戏的界面能够适合所有大小的屏幕,所以我决定使用GridLayout的比重特性。(踩坑开始)向布局添加子项的代码//实例化子项,因为是练习,想着用动态添加的方法来做。子项是继...
2018-04-18 12:44:25 791
原创 二叉堆
二叉堆堆是一种特殊的队列,能够使用优先级实现更改队列顺序。用完全二叉树实现这样的结构。说是二叉树,其实并没有建立这样一个结构,堆的空间甚至是一个数组。 对于数组中的任一位置i上的元素,其儿子在2i位置上,右儿子在左儿子后的单元(2i + 1)中,它的父亲在[i / 2]上。用这样的数学关系可以将一个二叉树抽象到一个数组中。struct HeapStructtypedef...
2018-03-09 21:43:22 114
原创 浅谈散列
浅谈散列通过一个函数,将要储存的值与其储存的地址联系起来,方便进一步的访问。出于这个原因,设计的散列函数(Hash)就要有比较成熟的考虑。但是无论散列函数优秀与否,我们都应该重视冲突的解决。 Hi(X) = (Hash(X) + F(i)) mod TableSize 一般公式,其中X是要储存的元素,i是已发生的冲突次数解决冲突分离链接法使用链表操作,在发生...
2018-03-04 15:24:10 121
原创 AVL树
AVL树在BST的基础上添加平衡操作,使得最坏的情况得到优化。static int Height(Position P){ if(P == NULL) { return -1;//默认空节点的高度是-1,一种约定 } else { return P->Height; }}AVL树的插入有四种基...
2018-03-02 20:55:39 122
原创 搜索二叉树
搜索二叉树//类似创建一个单节点树,但是贴合树的递归定义SearchTree MakeEmpty(SearchTree T){ if(T != NULL) { MakeEmpty(T->Left); MakeEmpty(T->Right); free(T); } return NULL;}...
2018-03-02 20:41:23 91
原创 队列
队列数组实现//检验是否为空int IsEmpty(Queue Q){ return Q->Size == 0;}//检验是否满了int IsFull(Queue Q){ return Q->Size == Q->Capacity - 1;}//创建一个队列Queue CreateQueue(int Maxelements){ Q
2018-01-18 20:58:20 140
原创 栈
栈链表实现//建立一个表头Stack CreateStack(void){ Stack S = malloc(sizeof(struct Node)); if(S == NULL) { printf("Out of Space\n"); exit(EXIT_FAILURE); } S->Next = NUL
2018-01-16 08:24:07 180
原创 游标链表
游标链表不用指针和malloc()、free()函数构建链表。 核心的内容是: 数据储存在一组结构体中。每一个结构体包含有数据及指向下一个结构体的指针。 一个新的结构体可以通过调用malloc而从系统的全局内存得到,并可通过调用free而被释放。 #define Space 10typedef int PtroNode;typedef PtroNode Li
2018-01-13 15:12:42 315
原创 循环链表
循环链表环状的双向链表。//判断是否为空int IsEmpty(List p){ return (p->Next == p && p->Prior == p);//创建一个空表头List MakeEmpty(List p){ p = malloc(sizeof(struct CycleChain)); p->Next = p; p->Pr
2018-01-09 21:48:01 130
原创 双向链表
双向链表双向链表的结构与类似。//检验是否只有一个链头int IsEmpty( Position p ){ return ( p->Prior == NULL && p->Next == NULL );}//建造空连头,使得前、后驱都指向NULLList MakeEmpty( List p ){ p = malloc( sizeof( struct D
2018-01-05 22:07:26 124
原创 单向链表
单向链表模型就不再描述了,这里主要是分析一下操作。//测试空列表//Return true if L is emptyint IsEmpty( List L ){ return L->Next == NULL;}//测试当前元素是否为最后一个元素//Return true if P is the last position in List//Parameter
2018-01-03 18:18:05 104
原创 插入排序
Insertation-Sort插入排序就是把额外元素插入到已拍好的队列中。 分解为: 1.比对最后一个元素(j-1),判断是否满足从大到小(或从小到大)的顺序; 2.根据上述结果移动现有元素; 3.插入元素(j)。 其中,p表示一段数组第一个元素,r则表示最后一个递归插入排序和二分法实现排序(提速插入部分)void insertion_sort(int array[],int
2017-12-27 22:43:30 105
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人