自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(48)
  • 资源 (6)
  • 收藏
  • 关注

原创 实现一个发布-订阅模式

订阅/发布者模式订阅发布模式:一对多的关系,让多个观察者同时监听某一个主题对象,这个主题对象的状态发生改变时就会通知所有观察者对象,中间通过一个调度中心来发布通知function Dep(){ this.subs = [];}Dep.prototype.addSub = function(sub){ this.subs.push(sub);}Dep.prototype.notify = function(){ this.subs.forEach(sub =>

2020-09-14 14:16:04 323

原创 CSS两栏布局的实现

一、浮动二、flex布局三、绝对定位<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> &lt...

2020-04-28 22:15:49 139

原创 斐波那契实现(闭包、动态规划、递归、计算当前项是由多少个第一项第二项构成)

实现斐波那契数列,可以通过递归和动态规划的方式实现,现在要求把计算过的变量存储起来,之后用到的时候不必重复计算,此处就用到了闭包// 0, 1, 1, 2, 3, 5, 8...var fib = (function() { var arr = [0, 1, 1];// 也必须得是3个 return function(n){ var res = arr[n];...

2020-04-28 21:39:32 212

原创 javascript实现继承的七种方式(from 红宝书)

继承是面向对象语言的基础概念,一般OO语言支持两种继承方式:接口继承和实现继承。接口继承只继承方法签名,而实现继承则继承实际的方法。ECMAScript中函数没有签名,因此无法实现接口继承。ECMAScript只支持实现继承,而其实现继承主要是靠原型链来实现。一、原型链原型链作为实现继承的主要方法,其基本思想是利用原型让一个引用类型继承另一个引用类型的属性和方法。利用原型链的思想实现继承的简...

2020-04-28 21:08:43 554 1

原创 js--实现一个instanceof

var _instanceof = function(a, b){ // 判断a是否在b的原型链上 if (a.__proto__ === b.prototype) return true;// 找到Object.prototype停止 if (a.__proto__ === null) return false; // if (a === null) re...

2020-04-21 19:07:00 1233 1

原创 算法题:输出DOM结构

console.log(output(document.documentElement))function output(el) { let result_list = [] do_output(el, 0, result_list) return result_list.join('\n');}function do_output(el, level, res...

2020-04-21 18:01:00 694 2

原创 js-实现一个new函数

javascript中在new一个对象时发生了什么?1.创建一个新对象2.将新对象的__proto__指向构造函数原型,也就是将新对象链接到原型链上3.将构造函数中的this指向新对象4.构造函数中若有返回值,就直接返回;否则返回新对象function Person(name, age){ this.name = name; this.age = age;}...

2020-04-18 14:16:06 657

原创 面试题:实现一个add函数

//实现一个add功能function add(a) { let fn = function(b) { a = a + b; return fn; } fn.toString = function() { return a; } return fn;}add(1); // 1add(1...

2020-04-09 17:08:46 987

原创 setInterval、setTimeout、requestAnimationframe对比

定时器方法:setTimeout(): 设定时间后执行函数setInterval(): 每隔一段时间执行一次函数requestAnimationFrame(): 与屏幕的刷新频率保持一致三者对比:setTimeout和setInterval为异步事件,内在运行机制决定了时间间隔参数实际上只是指定了把动画代码添加到浏览器任务队列中等待执行的时间;如果任务队列中有其它事件,那么要等...

2020-04-06 17:33:17 117

原创 http状态码和缓存机制

http状态码含义,缓存失效的状态码是多少http缓存机制,对应的状态码缓存失效的状态码是200​​2XX203 Non-Authoritative Information,服务器已成功处理了请求,但返回的实体头部元信息不是在原始服务器上有效的确定集合,而是来自本地或者第三方的拷贝​由于正在使用的是文档副本所以某些响应头信息可能不正确。这是 HTTP 1.1中新加入的。204...

2020-03-31 17:46:01 486

原创 浏览器有哪些进程?浏览器进程,渲染进程,网络进程,渲染进程有哪些线程?

浏览器进程,渲染进程有哪些线程参考:https://segmentfault.com/a/1190000012925872

2020-03-31 16:40:49 1755 1

原创 javascript--类数组转为数组

// 类数组:通常把拥有数值length属性和对应非负整数属性的对象看成一种类型的数组// 常见的类数组:arguments和DOM方法返回的元素筛选(getElementsByTagName, getElementsByClassName)// 方法一:最原始的方法:借用一个空数组,遍历// var eles = document.getElementsByTagName('di...

2020-03-26 19:06:31 38

原创 javascript数组去重的方法

// 方法一:indexOfarr = [2,3,4,5,3,4,2,6,4]function removeDup(arr) { arrNew = [] for(let item of arr) { if (arrNew.indexOf(item) === -1) { arrNew.push(item) } }...

2020-03-22 20:31:56 53

原创 猿辅导--课程质量建设

辅导课堂在推进质量建设,需要分析每堂直播课的用户报障数量。当连续多个课堂的报障数量之和大于一个数s的时候,系统发出警报,计算最长连续的没有触发警报的课程数量。输入描述:第一行两个整数: n, s第二行n的整数: 每个整数ai表示该课堂的报障数量对于10%的数据,满足1<=n<2*10^3对于100%的数据,满足1<=n<=2*10^6, 1<=...

2019-12-24 10:25:59 415

原创 剑指Offer62: 圆圈中最后剩下的数字(约瑟夫环问题)

题目: 0,1,...,n-1等n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字。求出这个圆圈里剩下的最后一个数字。例如,0、1、2、3、4这5个数字组成一个圆圈,从数字0开始每次删除第3个数字,则删除的前4个数字依次是2、0、4、1,最后剩下的数字是3.删除过程:loop 1: 删除从0开始的第三个位置上的数字2loop 2: 重新编号,从3开始计数,第三个数字...

2019-12-16 19:34:26 239

原创 剑指offer18--删除链表中重复的结点

在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5//删除链表中重复的结点public static ListNode deleteDuplication(ListNode pHead){ if (pHead =...

2019-12-13 20:31:46 66

原创 判断链表是否有环 如果有,那么找出环的入口

常见的面试题,除了会写代码之外,还要会数学推导,也就是深入理解原理,下面进行说明1 判断链表是否有环设置两个指针,一个快指针和一个慢指针,快指针每次向前移动2步,慢指针每次移动1步,由于快指针的移动速度快于慢指针,所以链表如果无环,快指针会先到达末尾,也就是NULL的位置;链表如果有环,快指针会先进入环内,之后会一直在环内移动,快慢指针最终在环内的某个位置相遇。慢指针p;快指针q;环的...

2019-12-13 19:41:02 57

原创 剑指offer45--把数组排成最小的数

描述:输入一个正整数数组,把数组的数字拼接,使得该数是所有拼接数字中最小的一个比如输入{3,32,321}, 则输出321323思路: 对于两个数字m,n,其拼接数字mn, nm, 若mn > nm, 则认为m > n; 若mn < nm, 则m < n根据这一规则对数组升序排序,最后将数字按序拼接,即可实现public static boolean is...

2019-12-13 12:27:48 42

原创 剑指offer46--把数字翻译成字符串--java代码

题目: 给定一个数字,按照如下规则翻译为字符串: 0->'a', 1->'b',......, 11->'l', ......, 25->'z'。一个数字可能有多个翻译,比如12258有5种不同的翻译,分别是"bccfi", "bwfi", "bczi", "mcfi", "mzi". 编写一个函数,计算一个数字有多少种不同的翻译方法//剑指offer46publi...

2019-12-13 11:08:46 105

原创 剑指offer53-查找数字在数组中出现的次数

剑指offer53-查找数字在排序数组中出现的次数题目描述问题分析题目描述统计一个数字在排序数组中出现的次数。比如,输入排序数组{1,2,3,3,3,3,4,5}和数字3,由于数字3在数组中出现了4次,因此输出4.问题分析1.暴力求解,遍历数组,统计数字k出现的次数,时间复杂度O(n)肯定不是最优解,没有用到排序的条件2.二分查找,确定数字k在数组中的位置,然后从子数组从左向右和从...

2019-11-19 18:57:41 150

原创 动态规划之股票交易问题

动态规划_股票问题详解动态规划之股票的买卖_简书Table of ContentsBest Time to Buy and Sell Stock IBest Time to Buy and Sell Stock IIBest Time to Buy and Sell Stock IIIBest Time to Buy and Sell Stock IVBest Time...

2019-11-19 17:46:24 275

原创 个人笔记-循环队列实现[循环队列、双端循环队列]

622.Design Circular Queue641.Design Circular Deque

2019-11-03 21:00:31 60

原创 交换两个数字的四种方法

第一种: 借助第三个变量(常用方式)代码略第二种: 先加和,再减去其中一个数值b,赋值给b,最后再从和中减去b得到apublic static void main(String[] args) { int a = 3, b = 4; System.out.println("交换之前:"); System.out.println(String.format("a...

2019-10-10 21:37:48 365

原创 macOS升级到10.15,qt5编译不通过的问题

The platform SDK has been changed from version 10.14 to version 10.15. This requires a fresh build. Please wipe the build directory completely, including any .qmake.stash and .qmake.cache files gener...

2019-09-24 18:13:14 1800 1

原创 面试常见算法题之快速排序

面试常见算法题--快速排序

2019-09-23 20:19:49 218

原创 单链表反转_递归

//递归链表反转public static ListNode reverseList(ListNode head) { if (head == null || head.next == null) { return head; } ListNode newHead = reverseList(head.next);//倒数第二个节点 head.n...

2019-09-19 16:35:28 39

原创 Java_打印回行数组

public static void spiralArray(int[][] arr,int m, int n){ for(int i = 0; i < m; i++){ for(int j = 0; j < n; j++){ System.out.print(arr[i][j]+" "); } S...

2019-09-08 16:03:58 341

原创 leetcode刷题记录_DP_II

1143. Longest Common Subsequence// https://leetcode.com/problems/longest-common-subsequence/最长公共子序列状态转移方程:if (s[i] == t[j]){ dp[i][j] = dp[i-1][j-1] + 1;}else { dp[i][j] = Math.max(d...

2019-09-04 09:31:35 45

原创 leetcode刷题记录_动态规划_I

leetcode_62_unique path动态规划: 声明二维数组,首行首列初始化为1,之后元素=上方值+左方值level: simple63. Unique Paths II//每一行/列的值与前一个状态有关,与uniquePath_I初始化不同for(i=1;i<m;i++){//为第一列元素赋值 if(obstacleGrid[i][0] == 0){...

2019-09-02 10:27:10 60

转载 matlab中的find函数

参考博客:https://www.cnblogs.com/anzhiwu815/p/5907033.htmlfind函数返回非0元素的索引返回元素在原矩阵/向量中的索引(矩阵中的元素是一列一列存储的)%%%%%%%%%%%%%%%%%%numel(A) -- 返回矩阵或向量中的元素总数图像分割_绘制超像素边界%完整代码im=imread('130014.jpg');...

2019-06-25 17:10:52 169

转载 matlab 连通分量去除孤立点

src_img_name = 'haixing.png';img = imread(src_img_name);% get binary imagegray_img = rgb2gray(img);T = graythresh(gray_img);bw_img = imbinarize(gray_img, T);% find the largest connected regio...

2019-06-25 17:09:27 2779

原创 最长递增子序列

最长递增子序列是很经典的算法题1. 转化为最长公共子序列问题(LCS)对原数组进行排序,原数组与排序数组的最长公共子序列长度即为所求。但是存在一个问题:当数组中存在相同元素时,需要单独处理def lengthOfLIS(nums): """ 最长子序列 """ dnums = sorted(nums) l = len(nums) dp ...

2019-05-27 21:36:10 49

原创 leetcode_264 nthUglyNumber

大神的写法, beats 100%def nthUglyNumber(n): if n <= 0: return 0 if n == 1: return 1 k = [1] t2 = 0 t3 = 0 t5 = 0 for i in range(1, n+1): tmp = min...

2019-05-08 16:01:47 97

原创 leetcode -- 647. Palindromic Substrings

题目描述:给定一个字符串,判断字符串的子串中的回文串个数Example 1:Input: "abc"Output: 3Explanation: Three palindromic strings: "a", "b", "c". Example 2:Input: "aaa"Output: 6Explanation: Six palindromic strings: "a"...

2019-04-26 16:13:25 75

转载 图像处理之纹理特征提取

旋转不变性:图像旋转时,所选特征不随图像的旋转而发生变化LBP参考:LBP纹理特征提取灰度不变性-旋转不变性import numpy as npfrom PIL import Imageimport math def LBP(src): ''' :param src:灰度图像 :rtype:灰度图像 ''' src = np.ar...

2019-04-24 17:42:29 3334

原创 动态规划之背包问题

0-1背包问题(含代码)0-1背包问题入门详解动态规划常见面试题总结【动态规划】01背包问题(通俗易懂,超基础讲解)动态规划之完全背包详解Table of Contents题型一(01背包)题型二(01背包)题型三(完全背包)题型四(多重背包)背包问题是典型的动态规划问题,不同类型的背包问题有不同的解题思路01背包:N件物品,每件物品有一个完全背包:...

2019-04-22 21:21:16 158

原创 leetcode378 Kbh Smallest Element in a Sorted Matrix

给定一个n*n的矩阵,矩阵中的每一行、每一列元素按升序排序,找出矩阵中第k小的元素Example:matrix = [ [ 1, 5, 9], [10, 11, 13], [12, 13, 15]],k = 8,return 13.注意:你可以认为k总是有效的,1<=k<=n^2利用python的函数库完成算法def kthSmal...

2019-04-21 10:45:03 46

原创 MacOS Xcode openCV环境搭建

opencv4.0.1+xcode10_1+macOS Mojave version10.14.4安装步骤可以参考一下博文:https://blog.csdn.net/sinat_38221796/article/details/80230645终于搭好了opencv的环境,激动鸭。。。我安装的步骤是参考了多个博客的,具体哪几个也记不太清了。。。可以参考官方文档最后一步就是在新...

2019-04-16 16:57:41 209 3

原创 MacOS中使用Xcode调试matlab中的mex文件

按照官方文档进行设置:https://ww2.mathworks.cn/help/matlab/matlab_external/debugging-on-mac-platforms.html#d117e29110调试的步骤:1. 将要调试的cpp文件拖到xcode中的最左侧一栏中,任意设置一个断点2. 点击xcode中启动调试3. 新建一个matlab运行实例(右键dock中已...

2019-04-11 21:31:22 1495

原创 matlab中的掩膜抠图

改进版矩阵中的循环操作非常耗时,so 用矩阵逻辑与操作替代for循环one = ones(s_img(1), s_img(2));segM = segM & uint8(one);% for i=1:s_img(1)% for j=1:s_img(2)% if segM(i,j)==255% segM(i,j)=1;% ...

2019-04-10 21:35:56 16984 22

The Berkeley Segmentation Dataset and Benchmark-BSDS300

BSDS300数据集为图像分割和边缘检测的研究提供基准; 数据集由30个人类受试者完成,通过向一半的受试者提供彩色图像,向另一半提供灰度图像,从而完成图像的手工分割 BSDS300数据集分为包含200张图像的训练集和100张图像的测试集 BSDS300 human为每个受试者完成的手工标记数据集

2019-01-22

图像分割度量标准--matlab代码

图像分割实验常用matlab代码供参考;包括准确率、召回率等的计算代码

2019-04-29

图像分割和边缘检测-BSDS500数据集

BSDS300基础上扩展出的数据集,加入了200张新的图片。 BSDS500包括:图片,ground-truth, benchmarks

2019-01-22

绘制超像素分割结果_matlab代码

超像素图像分割的分割结果绘制程序; 分割程序可以改变; 输入为标记好的label map

2019-04-29

BSDS300-human

BSDS300-human是伯克利大学D. Martin and C. Fowlkes and D. Tal and J. Malik等人完成的数据集 通过向30个受试者呈现彩色和灰度图,完成图像分割,作为基准

2019-01-22

中国计算机学会推荐国际学术会议和期刊目录-2019

中国计算机协会2015年推荐的国际学术会议会议和期刊目录 搜索期刊、会议文章 需要的同学可自行下载

2019-05-21

空空如也

空空如也

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

TA关注的人

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