自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

shenxingbo的专栏

仲夏夜,星之空, 年少轻狂挽如风

  • 博客(79)
  • 资源 (14)
  • 收藏
  • 关注

原创 Thymeleaf学习记录

历史JSP 在 JavaWeb 的世界中统治了很长一段时间。但是,由于血统不纯正,表现一般般,许多技术跃跃欲试,欲取代其统治地位。jsp缺点jsp 标签和 html 标签混在一起,生成的文档比较混乱在 web 浏览器或者 html 编辑器中查看未经渲染的 jsp 页面和预想差别很大jsp 和 servlet 紧耦合,只能用在基于 Servlet 的 web 项目中 Th...

2018-06-26 16:31:29 303

原创 k数和

思路这道题感觉是一个非常好的动态规划的题目,动态规划方程:d[i][j][target]=d[i−1][j][target]+d[i−1][j−1][target−a[i]]d[i][j][target]=d[i−1][j][target]+d[i−1][j−1][target−a[i]]d[i][j][target] = d[i-1][j][target] + d[i-1][j-1][tar...

2018-06-07 22:17:40 434

原创 53. 翻转字符串

思路首先翻转字符串整体,然后对于每个单词进行翻转,两次翻转的函数使用同一个函数。翻转函数的思路:使用队列将String转成char[],然后反过来存储(下面就是使用的这种方法)用两个指针,进行前后字符的对换代码 public static String reverseWords(String s) { if (s.length() <= 1)...

2018-06-05 14:45:31 238

原创 50. 数组剔除元素后的乘积

思路这道题使用的是分治法, result[i] = left[i-1] + right[i+1];下面使用巧妙的实现代码public static List<Long> productExcludeItself(List<Integer> nums) { Long temp = Long.parseLong("1"); ...

2018-06-02 10:58:24 220

原创 阿里云服务器

修改阿里云服务器的主机名: vim /etc/hostname

2018-05-25 10:55:05 253

原创 落单的数 II

思路:整体的一个思路就是对 n 个数所有的位求和,然后 在对每一个位上的 sum mod 3 ,这样就能够把单独的那个数字找出来代码:public int singleNumberII(int[] A) { int result = 0; for (int i = 0; i < 32; i++) { int coun...

2018-04-20 23:11:13 140

原创 最小子串覆盖

思路这道题 lintcode 上面描述的不完整,应该是找到的子串同时满足开始 index 和 length最小核心思想就是使用两个数组 sCount 和 tCount 来记录已经出现的字符的个数,同时使用一个变量 count 已经符合 target 中字母的个数同时一个经典之处是, 使用 while 循环缩小窗口的左边界 代码 public static Strin...

2018-04-03 11:06:01 169

原创 搜索二维矩阵 II

思路其实总的思想就是二分查找,但是其中的一个技巧是当查找不到的时候返回 right 值,这时间的 right 值指向值的特性是 a[right] < target其次需要注意的是一定要处理好 边界条件 和特殊的 测试值代码 public static int searchMatrix(int[][] matrix, int target) { if ...

2018-04-02 17:21:39 147

原创 全组合

思路使用递归的方式,实现全组合。使用的公式 C(m, n) = C(m-1, n-1) + C(m, n-1);代码public void recursion(int index, int count, String str) { //对 begin - end 之间的数字进行全组合 if (count == 0) { list.add...

2018-03-12 15:12:37 206

原创 三数之和

思路感觉这道题自己的思路还是比较low的,感觉在效率上一点都不高。没想到居然通过了(0.0)。 简单记录下这道题使用了两个小知识: 首先是降低复杂度,首先对于(i, j)和(j, i)是 不允许出现的。所以在for 循环中使用 j < i 避免这种情况; 其次,结果中一定还存在重复元,这时候使用 set 来去除重复元。对于找到的三个数 a+ b + c = 0; 首先将 abc 进行排序,然

2018-02-06 14:36:12 1053

原创 最长上升子序列

思路这道题考察的是 动态规划 , 这道题的思路和最大子段和是一样的,曾经都写过最长上升子序列,动态规划的方程 可以见参考代码 public int longestIncreasingSubsequence(int[] nums) { int[] len = new int[nums.length]; if (nums.leng

2018-01-30 15:45:10 180

原创 主元素 II

思路本题主要考察的是map数组的使用,唯一的小技巧是在往map中添加元素的时候,时刻的判断着 某个元素的数量是否超过总数的的 1/3代码public int majorityNumber(List nums) { Map hash = new HashMap(); Integer temp, count; for (int i =

2018-01-30 09:44:18 131

原创 散点图

代码画直线#我们通常引入的是分模块pyplot ,大部分的功能都在这个包中import matplotlib.pyplot as plt import numpy as npx = np.linspace(-1, 1, 50) #指定的间隔内,返回均匀产生的数字 y = 2 * x + 1plt.figure()plt.plot(x, y)plt.show()

2018-01-17 22:59:04 1957

原创 恢复旋转排序数组

思路这道题应该首先计算出来 每个数字到其 原位置 移动的距离。但是有一个陷阱是,当使用程序移动的 时候,有时间遇见 1, 3, 5 只是在几个数之间交换的情形(死循环),所以要保证程序能够跳的出来。代码public void recoverRotatedSortedArray(List nums) { int temp = nums.get(0);

2018-01-15 21:27:23 144

原创 翻转链表

思想其实就是设置两个指针 pointer1, pointer2 。同步的移动pointer1, pointer2 ,head 这3个指针。这 3 个指针的前后顺序刚好是pointer1, pointer2 ,head。这道题应该注意的是while循环的判断条件: pointer2 != null代码 public ListNode reverse(ListNode hea

2018-01-15 19:37:46 137

原创 数组划分

思路这道题没什么考察点,主要是要注意两个for循环,一定要加上pos1 < pos2 防止越界。同时,注意题中最后的要求,如果都比k小,则返回数组的长度。代码public static int partitionArray(int[] nums, int k) { // write your code here int pos1 = 0;

2017-12-29 10:53:40 165

原创 插入区间

思路这道题本来以为没什么问题的,但是,真正实现起来,还是感到有点乱。这道题的收获: ArrayList是有序的list中有add(pos, object)方法,就是在指定位置处插入元素代码public List<Interval> insert(List<Interval> intervals, Interval newInterval) { List<Interval> l

2017-12-29 10:28:09 290

原创 交叉字符串

思路这道题开始考察了尝试了两个思路,这道题不能简单的从相同的字母的个数是否相等下手。应该要想到字幕出现的顺序。最后使用了递归,但是一直感觉代码的效率不高代码 String s1; String s2; String s3; String s4; public Boolean flag = false; public boolean isInterle

2017-12-28 22:56:59 218

原创 平面列表

思路这道题是比较简单的题,简单的考察下递归的使用代码 private List<Integer> list = new ArrayList<Integer>(); // @param nestedList a list of NestedInteger // @return a list of integer public List<Integer> flatten(Li

2017-12-26 15:10:04 208

原创 子集

思路这道题的思路很直观,其实任何 2 个数字的全组合都是可以使用类似于00, 01, 10, 11来标志。那么自己维护一个二进制的数组,然后实现遍历输出即可。感觉这道题考察了java的 comparable 和 comparator接口,两个接口的介绍见参考1自己实现了一下,虽然通过了,但是代码不优雅,所以参考了网上别人写的,实现如下:代码自己动手实现时候写的二进制运算,先记录下来:s

2017-12-26 11:34:08 186

原创 带重复元素的排列

思路这道题感觉考察就是全排列,只是存储的时候使用Set存储,就能防止重复元素做完本题的感悟是:一定要掌握好java的容器,同时感觉自己对于容器的遍历掌握的不好代码static List<List<Integer>> list = new LinkedList<List<Integer>>(); static Set<List<Integer>> set = new HashSet<Li

2017-12-22 20:13:15 331

原创 全排列

思路一直认为全排列是一个很经典的问题,从前都实现过一次,这次又做了一次。具体思路,下面链接注意的地方:在java中都是值传递,所以对于swap(a, b)函数的使用,一定要注意,在此处是需要改变数组的内容的,所以需要返回数组函数代码static List<List<Integer>> list = new LinkedList<List<Integer>>(); public List

2017-12-22 19:40:06 234

原创 二分查找

思路二分查找的变形,主要的难点在于不仅要找到目标元素,并且要找到下标最小的。可以按照二分查找找到等于目标元素的下标,然后往前遍历,直到找到最小的下标。这里需要注意的是:当找到0下标的元素时候,不能往前面迭代了,因为会导致数组越界代码 public static int binarySearch(int[] nums, int target) { int begin = 0

2017-12-22 18:56:24 118

原创 排序

排序始终是个绕不过去的问题 0.0归并排序思路步骤 划分问题: 把序列分成元素个数尽量相等的两半递归求解:把两半元素分别排序合并问题:把连个有序表合并成一个算法的时间复杂度: O(nlogn) (这个我还没理解)注意在上图中,比如说当序列变成A[i]:38,49,65,97B[j]:13,27,76 A[i]: 38,49,65,97 B[j] :13 ,27,76

2017-12-20 14:52:29 127

原创 丑数 II

思路我们可以首先写出前几个丑数作为种子,比如 array = [1, 2, 3, 4, 5],这是前5个丑数,我们如何确定第6个呢? 第六个丑数,一定是 value2=min(array[i]∗2),value3=min(array[i]∗3),value5=min(array[i]∗5)value2=min(array[i] *2), value3=min(array[i] * 3),value

2017-12-20 12:02:42 147

原创 A + B 问题

基础java运算符: ^: 异或运算符&: 与运算符~:运算符|: 运算符思想对于 5 + 3 来说: 5的二进制是:a = 101 ; 3 二进制是 b = 011我们可以通过下面的方法得到:101 ^ 011 = 110(101 & 011) << 1 = 010110 ^ 010 = 100(110 & 010) <<1 = 100100 ^ 100 = 000

2017-12-20 11:48:32 443

原创 python小知识

#!/usr/bin/python 作用:指定解释器的位置、python中默认的编码是ASCII编码,在没有改变编码格式的时候,无法打印汉字。在文件的第一行,或者第二行加入下面的说明:#coding:utf-8

2017-12-16 10:42:37 193

原创 c++中的常用语法

知识点long long , long , int 的长度: 32位系统:int(4个字节) long(4个字节) long long(8个字节)64位系统:int(4个字节) long (8个字节) long long(8个字节)推荐的声明数组的方法: const int maxn = 100 + 10;int A[maxn];c++中有bool类型,但是c中没有 -

2017-12-12 23:03:06 262

原创 最长上升子序列问题(LIS)

问题方法状态转移方程: 需要注意的是: 当完全逆序的情况下,每个 dp(i) = 1代码#include<iostream>using namespace std;int data[] = {1,6,2,3,7,5};int record[6];int max(int a, int b) { return a > b? a:b;}int main() { int l

2017-12-12 16:57:44 229

原创 无关元素

唯一分解定理算术基本定理,又称为正整数的唯一分解定理,即:每个大于1的自然数均可写为质数的积,而且这些素因子按大小排列之后,写法仅有一种方式。(这个定理真的是有趣)问题知识补充:C(k, n) = (n - k +1) / k * C(k-1, n);思路首先将m利用 分解唯一定理 分解成 质数指数的连乘形式, 然后对于补充知识的公式,从C(1 , n) 算起,一次检测是否 C(k, n

2017-12-07 23:24:54 253

原创 扩展欧几里德算法

遇见这道题,对求最大公约数又有了新的认识欧几里得问题int gcd(int a, int b) { if (b == 0) return a; else return gcd(b, a%b);}扩展欧几里得问题对于ax + by = c; 在 c % gcd(a,b) = 0的时候,我们一般先求 a/gcd(a,b) x + b/gcd(

2017-12-07 21:25:22 131

原创 数字三角形问题

问题描述状态转移方程代码实现方法1:效率低下#include<iostream> #include<string.h>#define maxn 1000 + 5using namespace std;int a[maxn][maxn];int d[maxn][maxn];int n;int D (int i, int j) { return a[i][j] + (i ==

2017-12-07 11:00:59 201

原创 全组合(高效)

使用以为运算符生成全组合(很经典):package com.set.test;public class SetTest { public static void main(String[] args) { String str[] = { "A", "B", "C", "D", "E" }; int nCnt = str.length; int nB

2017-12-07 09:12:49 161

原创 第12章 通过异常处理错误

基本异常

2017-11-30 15:46:31 134

原创 第8章 多态

最近编程时候,遇见了一个问题,当时怎么都想不通。最后,谁知是多态。所以要静心研究下多态。面向对象的三大特征: 封装 继承 多态多态通过分离 做什么 和 怎么做 ,从另外的一个角度将接口和实现分离开来。封装通过合并特征和行为来创建新的数据类型。“实现隐藏”则是通过将细节“私有化”把接口和实现分离开。多态的作用是消除类型之间的耦合关系。多态也叫作动态绑定,后期绑定,运行时绑定。 -首先是一个

2017-11-28 14:49:42 163

原创 第2章 一切都是对象

基础知识列表内容

2017-11-28 11:47:27 127

原创 关于内存的细节

http://blog.csdn.net/yabay2208/article/details/71108514

2017-11-27 10:16:25 125

原创 python基本语法

基本数据类型数组文件集合常用结构类

2017-11-24 11:07:24 132

原创 第5章 初始化与清理

java中通过使用构造器,类的设计者可以确保每个请注意由于构造器的名称必须和类名完全相同,所以,每个方法首写字母小写的编码风格并不适用于构造器。java中的初始化与创建是绑在一起的,两者不能分离。相同的词表达的是不同的含义,这叫做:重载区分重载的方法是:每个重载的方法都要有独一无二的参数类型的列表甚至参数顺序的不同也足以区分两个方法,但是一般不建议这么做。默认构造器是没有形式参数的,它的

2017-11-24 11:04:59 132

原创 第13章 字符串

不可变的String:String对象是不可变的,String类每一个看起来会修改String值的方法,都是创建了全新的对象。而最初的String是丝毫未动的。String q = "howdy";String qq = upcase(q);print(q); //howdyprint(qq);//HOWDYString对象只有只读特性,所以指向它的任何的引用都不可能改变它的值,因此,也就

2017-11-04 22:01:10 184

随机过程.pdf

随机过程 随机过程 随机过程 随机过程 随机过程 随机过程 随机过程 随机过程

2017-09-29

UML基础与Rose建模案例(第3版).pdf

UML基础与Rose建模案例(第3版) 挺不错的资源,一起分享

2016-05-14

CodeIgniter2.0中文手册

CodeIgniter2.0中文手册

2016-03-20

Junit_api 文档

junit4.7的文档

2015-05-04

junit 4.8.2

用于测试的jar包用于测试的jar包 ;

2015-05-04

编译原理 陈火旺 pdf

编译原理陈火旺pdf

2015-03-21

程序设计语言编译原理答案

什么是编译程序 编译程序概述 编译程序的结构 编译程序的总框架

2015-03-18

易学 c++ 潘嘉杰

本书主要是依照计算机本科专业的实际教学需要来编排内容的。虽然内容的条理可能不及某些专业的C++工具书那么清晰,但是这样的次序让初学者比较容易上手。毕竟那些工具书是面向一些已经掌握C++或有较高的高级语言程序设计基础的读者。编写此书的主旨就是不要一下子把什么都说出来,而是一点一点循序渐进地增长读者的能力。这样,读者就不会一下子被那么多难以接受的概念吓住,以至于失去了继续学习的信心。本书所有程序使用的编译器是Microsoft Visual C++,并介绍C++标准,Borland C++我们不作讨论,以免初学者把各种概念混淆起来,也有效降低了学习的压力。对于一些C++中存在却不常用的内容,本书一般一笔带过或不予提及。因为这些内容在应试方面不作要求,在实际使用上也可以由其他方法代替。但是,如果您是一位初学者,那么就请务必要看到本书的每一个角落。您所遗落的一句话就有可能是一个知识的关键点。

2015-03-14

thing in c++

Thinking in C++(2nd Edition) Volume one 《C++编程思想》,经典教材,学习C++必看书之一。

2015-03-14

数据结构 严蔚敏 代码

1.1 数组和字符串 2 1.1.1 一维数组的倒置 2 范例1-1 一维数组的倒置 2 ∷相关函数:fun函数 1.1.2 一维数组应用 3 范例1-2 一维数组应用 3 1.1.3 一维数组的高级应用 5 范例1-3 一维数组的高级应用 5 1.1.4 显示杨辉三角 7 范例1-4 显示杨辉三角 7 ∷相关函数:c函数 8 1.1.5 魔方阵 9 范例1-5 魔方阵 9 1.1.6 三维数组的表示 14 范例1-6 三维数组的表示 14 ∷相关函数:InitArray函数 1.1.7 多项式的数组表示 17 范例1-7 多项式数组的表示 17 1.1.8 查找矩阵的马鞍点 19 范例1-8 查找矩阵的马鞍点 19 ∷相关函数:Get_Saddle函数 1.1.9 对角矩阵建立 21 范例1-9 对角矩阵建立 21 ∷相关函数:Store函数 1.1.10 三对角矩阵的建立 22 范例1-10 三对角矩阵的建立 22 ∷相关函数:Store函数 1.1.11 三角矩阵建立 24 范例1-11 三角矩阵建立 24 ∷相关函数:Store函数 1.1.12 对称矩阵的建立 25 范例1-12 对称矩阵的建立 25 ∷相关函数:store函数 1.1.13 字符串长度的计算 28 范例1-13 字符串长度的计算 28 ∷相关函数:strlen函数 1.1.14 字符串的复制 29 范例1-14 字符串的复制 29 ∷相关函数:strcpy函数 1.1.15 字符串的替换 31 范例1-15 字符串的替换 31 ∷相关函数:strrep函数 1.1.16 字符串的删除 33 范例1-16 字符串的删除 33 ∷相关函数:strdel函数 1.1.17 字符串的比较 35 范例1-17 字符串的比较 35 ∷相关函数:strcmp函数 1.1.18 字符串的抽取 36 范例1-18 字符串的抽取 36 ∷相关函数:substr函数 1.1.19 字符串的分割 38 范例1-19 字符串的分割 38 ∷相关函数:partition函数 1.1.20 字符串的插入 40 范例1-20 字符串的插入 40 ∷相关函数:insert函数 1.1.21 字符串的匹配 42 范例1-21 字符串的匹配 42 ∷相关函数:nfind函数 1.1.22 字符串的合并 43 范例1-22 字符串的合并 43 ∷相关函数:catstr函数 1.1.23 文本编辑 45 范例1-23 文本编辑 45 ∷相关函数:StrAssign函数 1.2 栈和队列 54 1.2.1 用数组仿真堆栈 54 范例1-24 用数组仿真堆栈 54 ∷相关函数:push函数 pop函数 1.2.2 用链表仿真堆栈 57 范例1-25 用链表仿真堆栈 57 ∷相关函数:push函数 pop函数 1.2.3 顺序栈公用 59 范例1-26 顺序栈公用 59 ∷相关函数:push函数 pop函数 1.2.4 进制转换问题 61 范例1-27 进制转换问题 61 ∷相关函数:MultiBaseOutput函数 1.2.5 顺序队列操作 64 范例1-28 顺序队列操作 64 ∷相关函数:push函数 pop函数 1.2.6 循环队列 66 范例1-29 循环队列 66 ∷相关函数:EnQueue函数 DeQueue函数 1.2.7 链队列的入队、出队 69 范例1-30 链队列入队、出队 69 ∷相关函数:push函数 pop函数 1.2.8 舞伴问题 71 范例1-31 舞伴问题 71 ∷相关函数:EnQueue函数 DeQueue函数 DancePartner函数 1.3 链表 75 1.3.1 头插法建立单链表 75 范例1-32 头插法建立单链表 75 ∷相关函数:createlist函数 1.3.2 限制链表长度建立单链表 77 范例1-33 限制链表长度建立长单链表 77 ∷相关函数:createlist函数 1.3.3 尾插法建立单链表 79 范例1-34 尾插法建立单链表 79 ∷相关函数:createlist函数 1.3.4 按序号查找单链表 80 范例1-35 按序号查找单链表 80 ∷相关函数:getnode函数 1.3.5 按值查找单链表 82 范例1-36 按值查找单链表 82 ∷相关函数:locatenode函数 1.3.6 链表的插入 84 范例1-37 链表的插入 84 ∷相关函数:insertnode函数 1.3.7 链表的删除 86 范例1-38 链表的删除 86 ∷相关函数:deletelist函数 1.3.8 归并两个单链表 88 范例1-39 归并两个单链表 88 ∷相关函数:concatenate函数 1.3.9 动态堆栈 90 范例1-40

2015-03-14

myeclipse10.0破解工具

关于myeclipse的破解器

2014-10-04

计算机组成原理

关于计算机组成原理的资料 PPT 计算机组成原理实验指导.pdf 白中英《计算机组成原理》第四版课后习题参考答案

2014-10-04

javaee source

javaee中引入资源包 javaee中引入类库

2014-08-31

空空如也

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

TA关注的人

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