自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

palepale

(ง •_•)ง

  • 博客(49)
  • 资源 (1)
  • 收藏
  • 关注

原创 设计模式相关博客目录,暂时完结了!!

设计模式相关博客目录策略模式,封装变化,面向接口编程观察者模式,松耦合装饰者模式,面向扩展开放修改关闭工厂模式单件模式命令模式适配器模式与外观模式,最少知识原则模板方法模式,好莱坞原则迭代器与组合模式,单一责任原则状态模式代理模式...

2020-03-03 17:54:34 91

原创 LeetCode题解目录(java实现)

这篇博文作为日后在力扣刷题记录的链接汇总,希望能碰见一起学习交流技术的伙伴01.两数之和20.有效的括号42.接雨水

2019-12-01 13:11:01 407

原创 《计算机组成与设计:硬件、软件接口》阅读笔记

分享一些初次阅读时的记录,本文原是导图,我直接粘在了这 可读性一般,需要导图的朋友可以私,希望可以帮到大家快速搭起这本书的知识结构。计算机组成与设计:硬件、软件接口 ####计算机概要与技术 **引言** **计算机系统的八个思想** 面向摩尔定律的设计 预测完成时的工艺水平 使用抽象简化设计 分层次,模块化 指令集是对机器码实现的抽象 加速大概率事件 把优化放在大概率事件上 通过并行提高性能 硬件多核,算法并行 .

2021-07-02 09:29:26 556

原创 《计算机网络:自顶向下方法》阅读笔记

第一章 计算机网络和因特网1.1 什么是因特网我们可以从两个角度来回答这个问题:一种是描述组成它的软硬组件;另一种是根据为分布式应用提供联网服务的基础设施来描述。其实,第一种角度,是从它的组成来描述,第二种角度是从它的功能来描述1.1.1 具体构成描述因特网是一个世界范围的计算机网络,它互联了数以亿计的计算设备(包括PC、服务器、电视机、汽车等)。这些连入因特网的设备被称为主机或者端系统。以下是重点的一些概念:端系统通过通信链路和分组交换机连接到一起。不同类型通信链路有不同的物理媒介(同轴电

2021-07-01 20:16:41 719

原创 《现代操作系统》阅读笔记

分享一些初次阅读时的记录,本文原是导图,我直接粘在了这 可读性一般,需要导图的朋友可以私,希望可以帮到大家快速搭起这本书的知识结构。现代操作系统 ####引论 **引** 计算机 硬件 软件 内核态:操作系统 用户态 应用程序 用户接口程序:shell、GUI 操作系统具有对硬件的完全访问权限,由硬件进行保护,防止用户修改 **什么是操作系统** 作用 自顶:为应用程序提供资源集的清晰抽象 自.

2021-07-01 20:07:35 261

原创 leetcode 7.整数反转 9.回文数 13.罗马数字转整数 67.二进制求和 69. x的平方根(java实现)

7. 整数反转方法一:数学·1)先不考虑反转后的溢出,通过模10不断拿到最后一位数2)考虑生成的数大于等于214748364 或小于等于-214748364 时可能发生溢出的情况,直接返回class Solution { public int reverse(int x) { int prev=0; while(x!=0){ //解决溢出 if(prev>214748364 ||(prev==2147

2021-03-31 14:43:32 113

原创 21.合并两个有序链表 83.删除排序链表中的重复元素 141.环形链表 160.相交链表

递归1)递归关系:从两链表的头节点开始比较元素大小,假设l1头节点元素值更小,寻找下一个较小节点 l1.next=mergeTwoLists(l1.next,l2)2)终止条件:后续节点为空/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { t.

2021-03-02 15:03:02 118

原创 基于视觉的植物枝芽尺寸测量(JavaWeb部分以及算法实现的一点思路)

一、案例分析和设计1. 案例介绍这是一个前后端分离的小项目,该案例包含的JavaWeb知识点如下:涉及web知识点基于MVC的三层架构的实现(项目搭建)数据库连接(通过JDBC)JavaWeb程序通过AJAX与前端交互的过程(Servlet+AJAX+JSON)模拟前后端通过接口文档对接(简化版)以及使用postman模拟前端请求跨域问题的解决(Filter)(1) 案例背景手工测量枝芽长度费时费力。。。。,因此我们编写一个基于视觉的测量系统。本文只简

2020-12-31 10:21:52 518 4

原创 leetcode 136.只出现一次的数字(HashMap、位运算、java)

方法1:HashMap取nums中每一个不重复元素,如果哈希表中不存在该元素值则初始键值为1,存在该元素值则使value++;后面取哈希表中的每一个value。没啥可写的。。Hashmap非线程安全、键值允许为nullclass Solution { public int singleNumber(int[] nums) { Map <Integer,Integer> map=new HashMap<>(); for(Integer num

2020-11-17 14:40:44 125

原创 leetcode 121.买卖股票的最佳时机 122. ||(暴力搜索时间优化、动态规划空间优化、贪心、java)

暴力搜索及时间优化暴力搜索:从左向右遍历,以每个元素开头的所有情况都要进行计算比较。maxTemp代表当下遍历序列的利润,将现有最大利润和新遍历后的数组序列表示的利润进行比较,用maxPrice记录每次遍历比较后的最大利润。当所有情况都计算比较之后,自然有了最大利润。class Solution { public int maxProfit(int[] prices) { int maxPrice =0;//记录最大利润,初始为0 int maxTemp ;

2020-11-16 21:44:30 104

原创 leetcode 118.杨辉三角 119.杨辉三角 ||(动态规划、List、java)

动态规划复用计算。官答。除去==0的特殊情况,其他情况都包含第一行。class Solution { public List<List<Integer>> generate(int numRows) { List<List<Integer>> triangle = new ArrayList<List<Integer>>(); // First base case; if user reque

2020-11-15 21:32:29 132

原创 leetcode 88.合并有序数组(双指针/俩游走下标、数组、java、自实现排序时不要插入)

通过空间换取时间,这样不需要在原数组nums1中插入nums2元素而导致大量数据移动造成的时间浪费。通过&&来限制i、j,保证不出现j<n但i>=m时仍有 nums1[i]<=nums2[j] 等情况而导致错误class Solution { public void merge(int[] nums1, int m, int[] nums2, int n) { //空间换时间 int nums[]=new int.

2020-11-15 21:08:42 109

原创 leetcode 66.加一(数组遍历、取模、java)

数组遍历、取模、java实现;虽然简单但是记录可以缓解强迫症啊

2020-11-14 21:51:01 240

原创 leetcode 53.最大子序和(数组、动态规划、分治法)

动态规划https://www.zhihu.com/question/39948290大规模问题可由小规模问题递推得到。即先计算小问题,存储复用结果来计算大问题。return fib(n-1) + fib(n-2)results = list(range(n+1)) # 用于缓存以往结果,以便复用(目标2)for i in range(n+1): # 按顺序从小往大算(目标3)if i < 2: results[i] = ielse:results[i] = results[i-1]

2020-11-14 16:07:27 536

原创 35.搜索插入的位置

给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。方法1:很直接class Solution { public int searchInsert(int[] nums, int target) { int i=0; while(i<nums.length){ if(nums[i]>=target) break;

2020-10-05 18:06:04 114 1

原创 27.移除元素(标记量、快慢指针两种解法)

标记量思路相等时,在while中增加数组下标值,直到碰见不等数值(注意边界判断,放在&&前)。根据标记量确定覆盖位置的下标。时间复杂度:O(n)。空间复杂度:O(1)。class Solution { public int removeElement(int[] nums, int val) { int j=0; for(int i=0;i<nums.length;i++){ while(i<nums.l

2020-07-17 00:07:31 149

原创 26.删除排序数组中的重复项(标记量和双指针两种方法)

标记量确定覆盖的下标解题思路一层for循环,每次循环通过标记量j确定下一个不等数值要进行赋值的下标(直接覆盖待删除元素)。时间复杂度:O(n)。空间复杂度:O(1)。class Solution { public int removeDuplicates(int[] nums) { int j=0;//记录删除的个数==赋值时下标减少的值+1 for(int i=0;i<nums.length;i++){ while(((i+1

2020-07-14 20:34:01 154

原创 debug source not found等一些坑

no source:下载相应的jar包,Attach Sourcefailed to create the part’s controls:eclipse.ini中添加 -Duser.language=en

2020-06-12 22:45:50 221

原创 Servlet的使用和原理分析

servlet是运行在Web服务器中的小型Java程序,通常通过HTTP接受和响应来自客户端的请求。servlet 通常运行在多线程服务器上,因此应该意识到 servlet 必须处理并发请求并小心地同步对共享资源的访问。共享资源包括内存数据(比如实例或类变量)和外部对象(比如文件、数据库连接和网络连接)。Servlet相关接口、类Servlet生命周期...

2020-04-07 20:58:47 225

原创 Servlet相关接口、类的方法整理

ServletConfig接口servlet 容器使用的 servlet 配置对象,该对象在初始化期间将信息传递给 servlet。public interdace ServletCofig{ public String getInitParameter(String name) /*返回包含指定初始化参数的值的String或null*/ public Servle...

2020-04-07 20:40:31 334

转载 web.xml元素详解及加载流程

1、WEB工程加载web.xml过程经过个人测试,WEB工程加载顺序与元素节点在文件中的配置顺序无关。即不会因为 filter 写在 listener 的前面而会先加载 filter。WEB容器的加载顺序是:ServletContext -> context-param -> listener -> filter -> servlet。并且这些元素可以配置在文件中的任意位...

2020-03-30 15:45:08 163

原创 初探设计模式——代理模式(远程代理,虚拟代理,动态代理)

代理模式用来控制和访问管理,方式有很多。代理以通过Internet对他们的代理对象搬运的整个方法调用而出名,也可以代替某些懒惰的对象做一些事情。远程代理远程方法调用流程客户对象调用客户辅助对象(Proxy)的方法客户辅助对象打包调用信息,(lookup service)再然后通过网络将它运给服务辅助对象服务辅助对象(Skel)接收请求(透过Socket连接)解包,调用服务对象的相应方法...

2020-03-03 17:39:14 452

原创 初探设计模式——状态模式

状态模式:允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它的类。State接口(抽象类)定义了一个生成所有具体状态的共同接口,那么实现接口的状态类可以互相转换。Context类拥有一些状态,通过request()方法请求某状态对象的行为ConcreteStateA是实现接口的一个具体状态类,提供本状态特有的实现处理来自Context的请求,使得Context改变状态时行为也发生改...

2020-03-02 22:52:32 118

原创 初探设计模式——迭代器与组合模式 ,手写使用Iterator接口,JDK中的一些迭代器

2020-03-01 23:58:30 132

原创 初探设计模式——模板方法模式

如果一些类有很多重复性的代码,我们可以应用此模式把相同方法抽离出来,把相似的一些方法抽象出来。算法结构中可以通过钩子方法让子类实现算法中可选的部分,也可让子类有机会对模板方法中即将发生的行为作出反应。public abstract class BevePage{ void final prepare{ //保护prepare这个算法 brew(); boilWater(); i...

2020-02-27 23:36:49 125

原创 初探设计模式——适配器模式与外观模式

现实世界中有许多适配器的例子,比如说充电器接口和手机不匹配时,给数据线加个适配器(转换接口)就可以使用了。OO适配器也是如此,将一个接口转换成另一个接口以符合客户的需求。适配器模式:将一个类的接口转换成客户期望的一个接口。适配器让原本接口不兼容的类合作无间。假设客户实现了接口A,如果想调用接口B就要修改客户的代码,通过适配器模式提供一个适配器类,将改变封装在这个类中。对象适配器publ...

2020-02-26 21:24:19 212

原创 初探设计模式——命令模式

命令模式:将请求封装成对象,以便使用不同的请求、队列或者日志来参数化其他对象。支持撤销可以分成四部分:命令接口及命令对象Command、客户Client、调用者Invoker、接收者Receiver实现命令接口public interface Command{ public void execute(); //用来绑定接收者和一组动作}建立命令对象,实现电灯接收者的打开命令publ...

2020-02-25 17:20:01 118

原创 初探设计模式——单件模式 与线程池、缓存、注册表、日志

**单件模式:确保一个类只有一个实例,并提供一个全局访问点 **单例模式需要私有的构造器、一个静态方法、一个静态变量,可以避免其他类再自行产生实例,ststic使这个实例可以在全局内访问。多线程抢占单例对象数据不同步问题1.把getInstance()变成同步(synchronized)方法public class Singleton{ private static Singleton ...

2020-02-24 23:41:27 480

原创 初探设计模式——工厂模式

Pizza是超类型,CheesePizza、ClamPizza是其子类。public abstract class Pizza{ void prepare(){} void box(){}}得到一个具体对象:Pizza cheesePizza=new CheesePizza();得到多个具体对象:Pizza pizza; if("cheese") pizza=new Ch...

2020-02-24 21:04:05 143

原创 初探设计模式——装饰者模式 ,在I/O中的身影

初次学习,如有谬论请大佬不吝斧正。组合的威力是强大的,可以在运行时动态扩展而不改变原来的功能。第四个设计原则:类应该对扩展开放,对修改关闭应用这个原则通常会引入新的抽象层次,过多的引入会使代码复杂度增加。装饰者模式:动态的将责任附加到对象身上首先引入一个抽象层次,针对抽象类编程public abstract class Beverage{ String description =...

2020-02-21 22:58:44 102

原创 初探设计模式——观察者模式

我将初次学习设计模式的一些思维活动记录如下,如有谬论请不吝斧正。观察者模式定义对象之间的一对多的依赖关系,当一个对象改变状态,它的依赖者都会收到通知并自动更新出版社是主题对象,读者们是依赖者对象。一旦出版者改变状态有了新刊,订阅者们就会收到通知并更新自己的状态。这就产生了依赖关系。突然一天订阅者A要退刊,他就不再是出版社的依赖者,自然不会再接受出版社的通知。实现:包含Subject和O...

2020-02-20 16:43:31 137

原创 初探设计模式——策略模式

我将初次学习设计模式的一些思维活动记录如下,如有谬论请不吝斧正。当我们有一个超类和它的一些子类,子类都含有的行为可以在超类中直接给出实现 不同的行为可以在超类中声明抽象方法 在子类中给出实现。但同时存在一些问题 。在后期维护需要添加新的子类但不含有这个抽象行为时该怎么处理?新子类有超类中具体实现的方法,但实现不一样该怎么办,难道要时刻关注是否进行方法覆盖?第一个设计原则:把变化的部分取...

2020-02-18 23:47:14 197

原创 抽象类

在设计父类时优先考虑抽象类(类继承在于扩充已有类功能,但子类覆写是不被强制约定的),它的主要作用在于通过abstract方法对子类覆写方法进行约定。abstract关键字定义没有方法体的抽象方法,有抽象方法的类必须是抽象类,抽象类可以包含抽象方法或普通方法抽象类的使用:抽象类必须被子类使用extends继承抽象类的子类(不是抽象类)一定要覆写抽象类中的全部抽象方法;抽象类的对象实例化可以...

2019-12-03 16:34:23 200

原创 Object类

Object类在JDK1.0便存在,类层次结构的根类,每个类都使用 Object 作为超类因为可作为所有类的父类,在设计时考虑所有子类继承的问题——默认调用父类无参构造函数,所以该类提供无参构造方法,所有的没有显式继承父类的类会默认继承Object类 调用Object的无参构造方法,所以不会出现构造方法调用失败的语法错误class Person{ public Person{系统默认super...

2019-12-03 13:20:25 82

原创 94.二叉树的中序遍历

1.递归/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */class Solution { ...

2019-12-02 09:35:33 85

原创 42.接雨水

1.暴力法对height[]遍历下标为1~height.length-1 的可能存水位置,存水位置的两边一定存在更大height[]值存水量 由两侧分别的最大值 中的 较小者 决定class Solution { public int trap(int[] height) { int ans=0; int size = height.length;...

2019-11-28 21:45:02 118

原创 反编译字节码文件

一个很酷的方法,来了解程序运行机制javac test.javajavap -c test.class >>a.txt//编译生成字节码文件//反编译后写入名字为a的txt文件现在大二了,我的学习之路开始了!...

2019-11-26 19:56:57 173

原创 LeetCode——20.有效的括号

1.通过HashMap和StackHashMap中通过键和值对应到左右括号,遇到左括号入栈 遇到右括号出栈通过HashMap匹配class Solution { private HashMap <Character,Character> mapp; public Solution(){ this.mapp=new HashMap<Charact...

2019-11-17 10:34:34 115

原创 LeetCode——1.Two Sum

1.暴力class Solution { public int[] twoSum(int[] nums, int target) { for(int i=0;i<nums.length;i++){ for(int j=0;j<nums.length;j++){ while(i!=j){ ...

2019-11-13 22:25:23 129

原创 C语言实现顺序栈 链栈 循环队列 链队列的基本操作

顺序栈#include <stdio.h>#include <stdlib.h>#define StackInitSize 10#define StackIncrement 5typedef int SElemType;typedef struct { SElemType *base; int top; int stacksize;}SqStack;v...

2019-10-05 21:27:03 992

opencv contrib扩展编译后的jar包、lib包(opencvextra_nonfree_install.zip)

visual studio2019,Ant, Python,Java环境 在win 10系统中通过cmake对Opencv4.1.0及其contrib包编译,资源包括jar、lib、dll等。适用于vs2019或java集成环境。

2020-11-13

空空如也

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

TA关注的人

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