自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 资源 (1)
  • 收藏
  • 关注

原创 leetcode_全排列—回溯法、深度优先搜索

描述:给定一个没有重复数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]]解题思路:方法1:回溯法回溯法的原理在于在前n-1位元素确定的情况下,求取n位以后的全排列。以1,2,3为例,首先固定第0位,就是分别将第0位与它本身及后面各位元素交换,得到3种不同的可能,在固定这一位后,在考虑第1位的可能性,将第1位与它本身及其..

2020-10-11 22:31:50 175

原创 leetcode_最大子序和

描述:给定一个整数数组nums,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4]输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。解题思路:动态规划 nums[i-1]表示到前一项为止的最大子序和,如果大于0就可以相加获得当前位置最大子序和,否则保持当前值不变。其实就是要求当前最大子序和,可以考虑前一位置最大子序和,如果是大于0的,加上当前值,以获得当前位置最大子...

2020-10-08 21:23:39 487

原创 leetcode_加一

描述:给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。:输入: [1,2,3]输出: [1,2,4]解释: 输入数组表示数字 123。输入: [9]输出: [1,0]输入: [9,9]输出: [1,0,0]...

2020-10-08 19:59:03 137

原创 leetcode_盛最多水的容器

描述:给你 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点(i,ai) 。在坐标内画 n 条垂直线,垂直线 i的两个端点分别为(i,ai) 和 (i, 0)。找出其中的两条线,使得它们与x轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且n的值至少为 2。示例:输入:[1,8,6,2,5,4,8,3,7]输出:49解决思路:用暴力的方式遍历的情况,时间复杂度会达到O(n^2),如何降低时间复杂度到O(n)?通过双指针的方式,一...

2020-10-08 19:00:20 93

原创 leetcode_整数反转

描述:给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例:输入: 123输出: 321输入: -123输出: -321输入: 120输出: 21注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0解题思路:1、当数字为0时,直接返回02、通过一个新的变量new_num,通过整除以及求余数的方式不断获取原始数据的个位,然后不断更新

2020-10-08 16:41:15 79

原创 leetcode_无重复字符的最长子串

描述:给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。示例:输入: "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。输入: "pwwkew"输出: 3解释: 因为无重复字符的最长子串是"wke",所以其长度为 3。 请注意,你的答案必须是 子串 的长度,"pwke"是一个子序列,不是子串。解题思路:...

2020-08-16 20:23:21 118

原创 leetcode_验证回文串

验证回文串题目描述:给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。示例:输入: "A man, a plan, a canal: Panama"输出: true输入: "race a car"输出: false解题思路: 使用fileter过滤掉标点符号并将字符连接,然后切片反转字符串class Solution: def isPalindrome(se...

2020-07-19 17:24:14 121

原创 leetcode_Pow(x,n)

Pow(x,n)题目描述: 实现pow(x,n),即计算 x 的 n 次幂函数。示例:输入: 2.00000, 10输出: 1024.00000输入: 2.10000, 3输出: 9.26100输入: 2.00000, -2输出: 0.25000解释: 2-2 = 1/22 = 1/4 = 0.25注意:-100.0 < x < 100.0n 是 32 位有符号整数,其数值范围是 [−231, 231 − 1]...

2020-07-19 17:05:59 88

原创 leetcode_回文数

回文数题目描述: 判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例: 输入: 121输出: true输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。输入: 10输出: false解释: 从右向左读, 为 01 。因此它不是一个回文数。解题思路: 如果为负数直...

2020-07-19 16:02:51 86

原创 leetcode_最后一个单词的长度

最后一个单词的长度题目描述:给定一个仅包含大小写字母和空格' '的字符串 s,返回其最后一个单词的长度。如果字符串从左向右滚动显示,那么最后一个单词就是最后出现的单词。如果不存在最后一个单词,请返回 0。说明:一个单词是指仅由字母组成、不包含任何空格字符的 最大子字符串。示例:输入: "Hello World"输出: 5解题思路:利用str内置函数切分字符串为列表,注意字符串为空的时候def lengthOfLastWord(self, s: str) -&g...

2020-07-05 22:25:39 283

原创 leetcode_两数相加

两数相加题目描述:给出两个非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。如果我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807解题思路:创建一个结果Lis...

2020-07-05 16:13:03 111

原创 leetcode_两数之和

两数之和描述:给定一个整数数组nums和一个目标值target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]解题思路:用一个字典将数字与其索引存储起来,然后通过便利的方式查询目标值与当前值的差值是否在字典中存在,存在记录两者的索引 def twoSum(self, nu...

2020-07-05 11:16:28 1744

原创 正则表达式学习笔记

实际生活中接触正则表达式比较常见的例如邮箱如何用正则表达式表示,带区号的电话号码又如何用正则表达式去表示,在尝试写出这些语句的正则表达式之前,先了解一些基本的正则表达式如何表示,如一个数字如何表示等。一、基本正则表达式符号 含义 \d 匹配一个数字 \w 匹配一个字母或者数字 \s 匹配一个空格 . 匹配任意一个字符 * 匹配任意个字符 ? 0个或者一个字符 + 至少一个字符 {m} m个字符

2020-07-04 23:35:57 129

原创 常见排序算法性能比较

排序方法 平均复杂度 最好情况 最坏情况 辅助空间 稳定性 冒泡排序 稳定 选择排序 不稳定 插入排序 ​​​​​​​ 稳定 shell排序 ~ ​​​​​​​ 不稳定 堆排序 ​​​​​​​ ...

2019-06-05 16:44:34 143

原创 leetcode minimum-depth-of-binary-tree (二叉树的最小深度 ) java

Given a binary tree, find its minimum depth.The minimum depth is the number of nodes along the shortest path from the root node down to the nearest leaf node.结题思路:根节点为空,最小深度为0; 左子树为空,输出右子树深...

2019-06-05 16:02:46 106

原创 进程与线程

进程进程是是并发执行的程序在执行过程中分配和管理资源的基本单位,是一个动态概念,竞争计算机系统资源的基本单位。进程控制块 (Process Control Block, PCB) 描述进程的基本信息和运行状态,所谓的创建进程和撤销进程,都是指对PCB 的操作。线程线程(thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。线程也被称为轻量级...

2019-06-02 15:36:14 110

原创 并发、并行、共享、虚拟

并发与并行并发是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行,但任一个时刻点上只有一个程序在处理机上运行,操作系统通过引入进程和线程,使得程序能够并发运行。并行则指同一时刻能运行多个指令,并行需要硬件支持,如多流水线、多核处理器或者分布式计算系统。共享指系统中的资源可以被多个并发进程共同使用,有互斥共享和同时共享两种方式。互斥共...

2019-06-02 10:36:40 1059

原创 牛客网从上往下打印二叉树

从上往下打印出二叉树的每个节点,同层节点从左至右打印。解题思路:对二叉树的层序遍历,结点满足先进先出的原则,利用队列。每从队列中取出头部结点并将结点的值存入ArrayList,若其有子结点,把子结点放入队列尾部,直到所有结点遍历完毕。import java.util.ArrayList;import java.util.LinkedList;public class TreeNode...

2019-06-01 23:16:17 105

原创 信号驱动IO与异步IO

信号驱动IO应用进程使用 sigaction 系统调用,内核立即返回,应用进程可以继续执行,也就是说等待数据阶段应用进程是非阻塞的。内核在数据到达时向应用进程发送 SIGIO 信号,应用进程收到之后在信号处理程序中调用 recvfrom 将数据从内核复制到应用进程中。信号驱动 I/O 的 CPU 利用率很高。异步IO应用进程执行 aio_read 系统调用会立即返回,应用进程可以继...

2019-06-01 23:03:08 5533 2

原创 leetcode130_被围绕的区域(dfs)

题目给一个二维的矩阵,包含 'X' 和 'O', 找到所有被 'X' 围绕的区域,并用 'X' 填充满。示例给出二维矩阵:X X X XX O O XX X O XX O X X把被 'X' 围绕的区域填充之后变为:X X X XX X X XX X X XX O X X解释被围绕的区间不会存在于边界上,换句话说,任何边界上的'O'都不会被填充...

2019-05-10 16:24:01 392

原创 41、缺失的第一个正数(给定一个未排序的整数数组,找出其中没有出现的最小的正整数)

题目:Given an unsorted integer array, find the smallest missing positive integer.Example 1:Input: [1,2,0]Output: 3Example 2:Input: [3,4,-1,1]Output: 2Example 3:Input: [7,8,9,11,12]Out...

2019-05-07 20:18:06 2384 1

原创 虚拟机类加载

虚拟机如何加载class文件? class文件中信息进入到虚拟机后会发生什么变化?虚拟机的类加载机制:虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型。Java语言,类型的加载、连接和初始化过程都是在程序运行期间完成的,这种策略虽然会令类加载时稍微增加一些性能开销,但是会为Java应用程序提供高度的灵活性,...

2019-04-29 21:20:51 249

原创 不支持中文模糊查询bug

1、考虑两个方面,是否数据库使用了UTF-8编码格式,如果是,检查tomcat中文乱码的问题,2、使用是springboot,开发环境,在application.properties文件中添加server.tomcat.uri-encoding=UTF-83、在guns中使用spingboot的开发环境,在gateway网关的application.yml中添加server: p...

2019-04-21 15:19:12 566

原创 jwt "token验证失败"}

设置了忽略列表仍然错误,这时候需要检查1、application.yml里面的ignore-url是否设置错误jwt: header: Authorization #http请求头所需要的字段 secret: mySecret #jwt秘钥 expiration: 604800 #7天 单位:秒 auth-path: auth ...

2019-04-20 10:20:48 3068

原创 红黑树

为了高效的查找,我们可以考虑二分查找的方式,但是前提是数据是排好序的,但是这种排序好的数据的存储方式又不能实现高效的插入。想实现高效的插入我们可以考虑通过链表的方式去存储数据,但是这种方式又不能够很好的去查找数据。二叉查找树————》》有树的特性,相对快速的插入,并且可以快速高效的查找。||2,3查找树实现实现高效平衡插入||红黑二叉查找树 ,用红色链的方式代替3结点...

2019-03-14 15:40:38 95

原创 利用二叉堆实现优先队列Java实现

package com.prince.algorithm;/** * 利用二叉堆实现优先队列 * @author Prince * * @param &lt;Key&gt; */public class MaxPQ&lt;Key extends Comparable&lt;Key&gt;&gt; { private Key[] pq; //基于堆的完全二叉树 priva...

2019-02-23 14:37:34 136

原创 快速排序java实现(两种方式)

package com.prince.algorithm;public class QuickSort { public static void sort(Comparable[] a) { //使用shuffle消除对输入的依赖 } private static void sort(Comparable[] a,int low,int high) { if(high...

2019-02-23 14:01:31 602

原创 shell排序java实现

package com.prince.algorithm;/** * shell排序的思想是使数组中任意间隔为h的元素都是有序的,是在插入排序的基础 * 上进行的改进,一开始h很大,使得元素可以移动到很远的位置,成为局部有序。 * 然后h递减最终为1,成为了传统意义上的插入排序,区别是已经存在了很多局部有序 * 的小数组。 * 排序之初,各个子数组都很短,排序之后子数组都是部分有序...

2019-02-22 11:19:16 205

原创 插入排序java实现

package com.prince.algorithm;/** * 插入排序 * 对于0到N-1之间的i,将a[i]与a[0]到a[i-1]中比它小的元素 * 依次有序的交换。在索引i由左向右变化的过程中,它左侧的元素 * 总是有序的,所以i到达右端,排序完毕 */public class InsertSort { public static void sort(Compar...

2019-02-21 21:52:49 91

原创 选择排序java实现

 package com.prince.algorithm;/** * 选择排序算法 * 首先找到数组中最小的元素,其次将它和数组的第一个元素交换位置 * (如果第一个元素就是最小元素那么它就和自己交换)。再次,在剩下 * 的元素中找到最小的元素,将它与数组的第二个元素交换位置,重复 * @author Administrator * */public class Sel...

2019-02-21 21:02:43 78

原创 模板中的转发

当我们需要在一个函数中调用另外一个函数时,可以需要把最外层函数的实参属性不变的传给内层被调用函数(如const以及左值右值属性)。模板中的转发将很好的满足我们的需求。 以下面这个函数为例template &lt;typename F,typename T1, typename T2&gt;void flip1(F f,T1 t1, T2 t2){ f(t2,t1);}函数f...

2018-08-31 23:26:48 234

原创 关联容器使用自定义的元素比较方法

容器中元素操作的类型也是容器类型的一部分。在定义关联容器时,需要将自定义的操作类型在尖括号中紧跟在元素类型之后。如Fruit类无&amp;lt;运算符,可以定义如下的函数bool compare(const Fruit &amp;amp;lhs,const Fruit &amp;amp;rhs){ return lhs.size()&amp;lt;rhs.size();}在定义multiset时提供两...

2018-08-19 21:14:05 177

原创 容器的拷贝

容器拷贝有两种方式:一种直接拷贝整个容器;另一种以迭代器的方式指定拷贝的元素的范围。当直接拷贝整个容器时,要求相同的容器类型,而且容器中元素的类型也要相同 如:vector&lt;const char*&gt; test1={"apple",""orange"};vector&lt;string&gt; test2(test1); //错误,元素类型不同当以迭代器方式指定拷贝的...

2018-08-16 16:56:49 1560

原创 k近邻算法识别手写数字

from numpy import * import operator from os import listdir “”” knn.py author:uestcprince date:2018/8/15 “”” inX:用于分类的输入向量 dataset:训练样本集 labels:标签向量 k:最近邻的数目 “”” def classify0(inX,dataset,...

2018-08-15 17:08:30 281

python实现贪吃蛇程序

用python实现简单的贪吃蛇程序,详细注释讲解,利用学习

2018-08-15

空空如也

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

TA关注的人

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