自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(86)
  • 收藏
  • 关注

转载 Django:TypeError: unsupported operand type(s) for /: ‘str‘ and ‘str‘

1.使用pycharm创建Djiango项目:【这里不是使用虚拟环境方法创建】2.运行Django项目服务器报错3.修改错误错误类型: TypeError: unsupported operand type(s) for /: ‘str’ and ‘str’出错代码: 如上图绿框所示,在settings.py中的’DIRS’: [BASE_DIR / ‘templates’]错误分析: 这个提示大概是说:“类型错误:不支持操作类型为字符串和字符串”,直接把两个字符串(BASE_DIR = o

2022-04-11 20:06:18 7807 1

原创 HashMap线程不安全问题分析

jdk1.7头插法-死循环问题resize()死循环。在JDK1.8之前,HashMap在动态扩容时复制旧table中的链表结点到新扩容后的newTab中使用的是头插法,每个节点都是插入在链表的头部,这也是导致多线程环境下出现环形链表死循环的根本原因。过程分析源码如下:简化代码for(){ Entry<K,V> e = src[j]; do{ //①断开链表前读取下一个节点,否则将会丢失链表 Entry<K,V> next = e.next;

2021-07-19 15:56:44 375

原创 回溯法leetcode77

leetcode77 组合问题给定两个整数 n 和 k,返回 1 … n 中所有可能的 k 个数的组合。示例:输入: n = 4, k = 2输出:[[2,4],[3,4],[2,3],[1,2],[1,3],[1,4],]public class Leetcode77 { List<List<Integer>> res = new ArrayList<List<Integer>>(); // List<I

2021-06-03 23:35:49 209

转载 算法分析-回溯法

>>[算法分析]回溯法回溯法:以深度优先方式系统搜索问题的解在问题的解空间树中,按深度优先策略,从根节点出发搜索解空间树当搜索到解空间树的任一结点时,判断该结点是否包含问题的解如果确定不包含,则跳过对以该结点为根的子树的搜索,逐层向其祖先结点回溯;(剪枝)否则,进入该子树,继续深度优先搜索;求解问题的性质求问题的所有解时,要回溯到根,且根节点的所有子树都被搜索后才结束求问题的一个解时,只要搜索到问题的一个解即可1 回溯法的算法框架1.1问题的解空

2021-06-03 23:35:26 363

原创 树--JZ4重建二叉树JZ17树的子结构JZ18二叉树的镜像JZ22从上往下打印二叉树JZ23二叉搜索树的后序遍历序列

递归、子问题解决方法JZ4重建二叉树描述      输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。示例1输入:[1,2,3,4,5,6,7],[3,2,4,1,6,5,7]返回值:{1,2,5,3,4,6,7}代码如下: /** *

2021-05-27 20:26:48 105

转载 BFS和DFS

原文链接深度优先遍历:深度优先遍历是图论中的经典算法。其利用了深度优先搜索算法可以产生目标图的相应拓扑排序表,采用拓扑排序表可以解决很多相关的图论问题,如最大路径问题等等。根据深度优先遍历的特点我们利用Java集合类的栈Stack先进后出的特点来实现。我用二叉树来进行深度优先搜索。深度优先搜索的步骤为:(这儿需要借助栈来完成节点访问操作)(1)、首先节点 1 进栈,节点1在栈顶;(2)、然后节点1出栈,访问节点1,节点1的孩子节点3进栈,节点2进栈;(3)、节点2在栈顶,然后节点2出栈,访问

2021-05-26 20:10:12 71

原创 链表2--JZ25复杂链表的复制JZ36两个链表的第一个公共结点JZ55链表中环的入口结点JZ56删除链表中重复的结点

JZ25复杂链表的复制>>点击此链接JZ36两个链表的第一个公共结点题目描述输入两个无环的单链表,找出它们的第一个公共结点。(注意因为传入数据是链表,所以错误测试数据的提示是用其他方式显示的,保证传入数据是正确的)分析:方法1:暴力破解,使用两个循环方法2:           看下面的链表例子:0-1-2-3-4-5-nulla-b-4-5-null代码的ifelse语句,对于某个指针p1来说,其实就是让它跑了连

2021-05-24 00:28:07 103

原创 链表1--JZ3从尾到头打印链表JZ14链表中倒数第k个节点JZ15反转链表JZ16合并两个排序的链表

JZ3从尾到头打印链表题目描述输入一个链表,按链表从尾到头的顺序返回一个ArrayList。示例1输入{67,0,24,58}返回值[58,24,0,67]分析:方法1:使用栈,先进后出方法2: 使用递归方法3:add(index:0,val)代码:class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } }pu

2021-05-24 00:16:09 110

原创 JZ52正则表达式匹配+JZ53表示数值的字符串+JZ54字符流中第一个不重复的字符

JZ52正则表达式匹配题目描述请实现一个函数用来匹配包括’.‘和’*‘的正则表达式。模式中的字符’.‘表示任意一个字符,而’'表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"ab*ac*a"匹配,但是与"aa.a"和"aba"均不匹配示例1输入“aaa”,“a*a”返回值true分析:参考:https://blog.csdn.net/juaner1993/article/details/81978399

2021-05-23 23:57:22 320

原创 JZ25复杂链表的复制

题目描述输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针random指向一个随机节点),请对此链表进行深拷贝,并返回拷贝后的头结点。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)分析:“深拷贝”,意味着不能将该链表的每个节点的data,next,random拷贝在一个新的节点,那样新的链表的node.next指向的还是上面旧链表的一个节点【如下图】,所以进行深拷贝时不能简单的拷贝旧链表的每个节点。思路:将新旧节点的对应关系保存在Ma

2021-05-17 20:22:54 140

原创 斐波那契数列及其相关题目JZ7,8,9,10

JZ7斐波那契数列大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0,第1项是1)。n\leq 39n≤39 /** * * 空间复杂度O(1) * @param n * @return */ public int Fibonacci3(int n) { if(n <= 0){ return 0; } if(n == 1

2021-05-12 17:02:55 238

原创 动态规划

leetcode70爬楼梯leetcode198打家劫舍leetcode53最大子序和leetcode70爬楼梯假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1 阶 + 1 阶2 阶代码: public int climbStairs(int n) { if(n==0||n==1 || n==2){

2021-05-11 01:04:16 102

原创 JZ43左旋转字符串

43题目描述汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。是不是很简单?OK,搞定它!示例1输入“abcXYZdef”,3返回值“XYZdefabc”如果有循环移位的题,一定要想到思路:取余+字符串的自加+取子串 !!!!!!!代码:方法1 private static

2021-05-10 20:34:36 92

原创 JZ44翻转单词序列

题目描述牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“nowcoder. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a nowcoder.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么?示例1输入“nowcoder. a am I”返回值“I am a nowcoder.”代码:public class

2021-05-10 20:01:56 97

原创 JZ27字符串的排列

题目描述输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则按字典序打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。输入描述:输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。示例1输入“ab”返回值[“ab”,“ba”]思路:别人的解法: 有深度优先遍历、回溯法等递归方法:参考:牛客题霸的题解 点击此链接跳转如图所示的全排列可以发现,对于这个排列,我们是固定A不动,然后交换B与

2021-05-09 17:01:19 181 2

原创 JZ51构建乘积数组

题目描述给定一个数组A[0,1,…,n-1],请构建一个数组B[0,1,…,n-1],其中B中的元素B[i]=A[0]A[1]…*A[i-1]A[i+1]…*A[n-1]。不能使用除法。(注意:规定B[0] = A[1] * A[2] * … * A[n-1],B[n-1] = A[0] * A[1] * … * A[n-2];)对于A长度为1的情况,B无意义,故而无法构建,因此该情况不会存在。示例1输入[1,2,3,4,5]返回值[120,60,40,30,24]思路:B[i]的值可以

2021-05-08 19:47:47 188 3

原创 JZ50数组中重复的数字

题目描述     在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任一一个重复的数字。 例如,如果输入长度为7的数组[2,3,1,0,2,5,3],那么对应的输出是2或者3。存在不合法的输入的话输出-1示例1输入[2,3,1,0,2,5,3]返回值2或3思路:方法一:没错,又是那个list方法,定义两个list,一个放没有重复的,一个放重复的。

2021-05-07 21:28:10 66

原创 JZ40数组中只出现一次的数字

题目描述       一个整型数组里除了两个数字只出现一次,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。示例1输入   [1,4,1,6]返回值   [4,6]说明        返回的结果中较小的数排在前面 思路:方法1: 两个for循环寻找方法2:使用 list 的 add 和remove【或者HashMap】方法3:异或方法 a^ b ^

2021-05-07 20:39:03 110

原创 JZ37 数字在排序数组中出现的次数

题目描述统计一个数字在升序数组中出现的次数。示例1输入[1,2,3,3,3,3,4,5],3返回值4思路既然输入的数组是排序的,那么我们很自然的想到利用二分查找算法。在题目给出的例子中,我们可以先用二分查找算法找到第一个3.由于3可能出现多次,因此我们找到的3的左右两遍可能都是3,于是我们在找到3的左右两边顺序扫描,分别找出第一个3和最后一个3.因为要查找的数字在长度为n的数组中可能很出现O(n)次,所以顺序扫描的时间复杂度为O(n)。因此这种算法的效率和直接从头到尾顺序扫描整个数组统计3出

2021-05-07 15:54:43 86

原创 JZ32把数组排成最小数

题目描述输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。示例1输入[3,32,321]返回值“321323”思路:这个题实际是考的字符串比大小,字符串是如何比大小?常用的三个比较函数 compareTo (string) ,compareToIgnoreCase(String) 及 compareTo(object string) ,它们的返回值是int类型

2021-05-05 21:08:57 95

原创 线程的创建方式

方式一、继承Thread类创建线程(1)extends Thread重写runpublic class ThreadDemo3 { //【1-1】继承Thread类 static class MyThread extends Thread{ @Override public void run() { //业务代码 //打印当前线程的名称 System.out.println("子线程的

2021-04-26 18:22:28 51

转载 树的高度和深度以及结点的高度和深度

–> 参考链接 <–树的高度和深度深度定义是从上往下的,高度定义是从下往上的。(其实不用在意这个,反正树的深度高度怎么数都一样的)。有两种说法:高度就是深度看层数:如果根结点第0,层数=深度=高度-1如果根结点第1,层数=深度=高度结点的高度和深度例如对于BCD三个点【根节点为1时】:B的子树是C和D,数B的高度时候,B的子树中离B最远的叶子节点是G,所以G高度为1,B高度4,D高度3。但是C是叶子节点,C没有真子树,C高度就是1。B, C, D 的深度分别是2

2021-04-22 19:40:06 2050

原创 TCP粘包和半包问题及解决

一、什么是粘包和半包问题?粘包问题:半包问题:二、为什么会有粘包和半包问题?因为 TCP 是面向连接的传输协议, TCP 传输的数据是以流的形式 ,而流数据是没有明确的开始结尾边界,所以 TCP 也没办法判断哪一段流属于一个消息。三、粘包和半包问题演示/** * 服务器端(只负责接收消息) */class ServSocket { // 字节数组的长度 private static final int BYTE_LENGTH = 20; public sta

2021-04-22 11:05:34 1559

原创 实现简易HTTP服务器

开发简易版HTTP服务器的关键在于遵循HTTP的协议。客户端就是浏览器实现:xxx/4044–>显示没有找到页面xxx/200–>显示“你好,世界”服务器端代码:/** * 简易版HTTP */public class CustomHTTP { private static final int port = 9004; public static void main(String[] args) throws IOException { .

2021-04-16 18:25:48 144 5

原创 TCP网络编程、英译汉练习

一、TCP协议实现网络通信服务器端:public class TCPServer { //端口号 private static final int port = 9002; public static void main(String[] args) throws IOException { //1.创建TCP服务器端 ServerSocket serverSocket = new ServerSocket(port); Syste

2021-04-16 18:15:59 120

原创 UDP网络编程

>>TCP 与UDP1.定义区别TCP (Transmission Control Protocol)和UDP(User DatagramProtocol)协议属于传输层协议。其中TCP提供IP环境下的数据可靠传输,它提供的服务包括数据流传送、可靠性、有效流控、全双工操作和多路复用。通过面向连接、端到端和可靠的数据包发送。通俗说,它是事先为所发送的数据开辟出连接好的通道,然后再进行数据发送;UDP则不为IP提供可靠性、流控或差错恢复功能。一般来说,TCP对应的是可靠性要求高的应用,

2021-04-14 16:46:05 55

原创 将web项目部署到Linux环境2

部署项目执行SQL建库建表修改项目中的数据库连接信息,确保数据库名称和密码与服务器一一对应打包发布到服务器重启tomcat

2021-04-13 17:39:54 110

原创 将web项目部署到Linux环境1

需要安装:MySQL服务端JDKTomcat安装JDK1、使用以下命令查看安装列表2、安装(-y 表示全部同意、不用再询问)3、查看安装的版本出现这些信息,说明安装成功!安装Tomcat1、Tomcat官网下载安装包(下载Tomcat8,因为我使用的Servlet3.1)2、下载3、将下载好的Tomcat安装包通过Xftp上传到服务器4、解压5、启动Tomcat6、【当tomcat启动失败时】设置运行权限:对于CentOS7.5以上需要设置:chmod +x

2021-04-13 17:23:47 67

原创 搭建Linux环境

Linux 环境的搭建方式主要有三种直接安装在物理机上. 但是由于 Linux 桌面使用起来非常不友好, 不推荐.使用虚拟机软件, 将 Linux 搭建在虚拟机上.使用云服务器, 可以直接购买一个云服务器.【此篇文章使用该方式】购买云服务器购买完成我们将得到: 1.服务器的外网 IP 2. 服务器的管理员账户 (固定为 root) 3. 管理员账户密码(在腾讯云网站上设置的) 通过这三个信息就可以使用 XShell 远程登陆了. 使用XShell和Xft

2021-04-13 15:34:02 122 3

原创 牛客——排序子序列

题目:牛牛定义排序子序列为一个数组中一段连续的子序列,并且这段子序列是非递增或者非递减排序的。牛牛有一个长度为n的整数数组A,他现在有一个任务是把数组A分为若干段排序子序列,牛牛想知道他最少可以把这个数组分为几段排序子序列.如样例所示,牛牛可以把数组A划分为[1,2,3]和[2,2,1]两个排序子序列,至少需要划分为2个排序子序列,所以输出2输入描述输入的第一行为一个正整数n(1 ≤ n ≤ 10^5)第二行包括n个整数A_i(1 ≤ A_i ≤ 10^9),表示数组A的每个数字输出描述输出一

2021-04-13 02:05:59 361 1

原创 将时间戳转换为时间

//将时间戳转换 function datefm(timespan) { var date = new Date(timespan); // 获得年份 var y = date.getFullYear(); // 获得月份【注意+1:因为js获取的月份会少一】 var m = date.getMonth() + 1; // 获得日期

2021-04-08 15:59:55 154 2

原创 IDEA热部署

Idea配置热部署一、概念热部署就是正在运行状态的应用,修改了他的源码之后,在不重新启动的情况下能够自动把增量内容编译并部署到服务器上,使得修改立即生效。热部署为了解决的问题有两个, 一是在开发的时候,修改代码后不需要重启应用就能看到效果,大大提升开发效率;二是生产上运行的程序,可以在不停止运行的情况下进行升级,不影响用户使用。二、Idea开启热部署...

2021-04-05 17:55:24 484

原创 Cookie和Session

Cookie和Session2021.3.31L7一、Cookie1、生成Cookie并SetCookie(1)配置web.xml<!-- 存储cookie --> <servlet> <servlet-name>setcookie</servlet-name> <servlet-class>SetCookieServlet</servlet-class> </servlet> &lt

2021-04-05 17:17:27 71

原创 Jackson的使用

Jackson 是当前用的比较广泛的,用来序列化和反序列化 json 的 Java 的开源框架。使用介绍:添加依赖代码演示public class Test { /** * 将HashMap转换为字符串 * @param args */ public static void main(String[] args) throws JsonProcessingException { Map<String,

2021-04-04 19:55:45 89

原创 Servlet常见方法

操作HTTP   Request头的方法Java代码:public class MyRequestServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doPost(req,resp); } @Over

2021-03-31 01:09:51 194

原创 初识Servlet——入门案例

用Servlet创建一个项目步骤:创建Maven(选择webapp模板)引入Servlet 3.1.0创建源码的根路径Java修改web.xml配置运行Servlet:(方式1:Tomcat->webapps)(方式2:Idea+Tomcat) 以下例子使用的是方式2一、获得前端的一个参数:/** * 源码2021/3/29 sevlet_mytest1 * 显示前端接收到的信息 */public class ServletTest1 extends HttpServ

2021-03-30 21:32:50 269

原创 代码片段——web.xml,beans.xml

<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://

2021-03-30 19:47:18 104

转载 JAVA字符串格式化-String.format()的使用

原文章:JAVA字符串格式化-String.format()的使用

2021-03-09 18:47:44 56

转载 剑指offer刷题顺序

文章链接:剑指offer刷题顺序

2021-02-03 17:22:23 388

原创 排序——选择排序:选择排序、双向选择排序、堆排序

一、选择排序每次选择最大的放在后面或者每次选择最小的放在前面时间复杂度:O(n^2)空间复杂度:O(1)稳定性:不稳定 /** * 【选择排序】---每次选择最大的放在后面 * 时间复杂度:O(n^2) * 空间复杂度:O(1) * 稳定性:不稳定 * @param array */ public static void selectSort(int[] array){ //一共多少次选择过程

2021-02-02 23:03:21 397

空空如也

空空如也

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

TA关注的人

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