自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Easy CHM 使用手册

Easy CHM 使用教学

2023-03-17 22:06:02 5990 1

原创 社区人员管理系统项目测试

社区人员管理系统项目测试

2023-02-07 22:55:17 771

原创 Leetcode 300: 最长递增子序列

动态规划之最长递增子序列

2022-07-03 20:56:37 185

原创 Leetcode 740: 删除并获得

动态规划之打家劫舍的改版

2022-07-03 20:39:20 95

原创 Leetcode 213: 打家劫舍 II

DP入门级题目 打家劫舍2

2022-07-02 09:30:00 74

原创 Leetcode 198: 打家劫舍

DP算法入门级题目可以看看

2022-07-01 20:38:26 68

原创 JVM - GC垃圾回收器

前两篇讲了Java运行时内存的各个区域。对于程序计数器、虚拟机栈、本地方法栈这三部分区域而言,其生命周期与相关线程有关,随线程而生,随线程而灭。并且这三个区域的内存分配与回收具有确定性,因为当方法结束或者线程结束时,内存就自然跟着线程回收了。

2022-04-21 13:45:00 232

原创 JVM - 类加载

JVM中的类加载详解!

2022-04-19 13:15:00 264

原创 JVM - 内存布局

JVM内存区域划分布局详解~~堆跟方法区是只有一份的每个线程,都有自己的栈.每个线程也都有自己的程序计数器~~ 堆: 里面放的就是new的对象~方法区: 里面放的就是类对象~类的static成员,作为类属性同样也是在类对象中,也就是在方法区里~类对象里有啥:1.包含了这个..

2022-04-18 21:35:02 356

原创 Linux指令(2)

PS:less只能查看文件 不能编辑!head -n 20 services 表示查看services文件的前20行tail-n 20 services 表示查看services文件的后20行VIM的使用方法:ps :process showps aux | grep vimnatstat 查看网络状态natstat -anp | grep mysq...

2022-04-13 15:11:14 132

原创 JDBC的URL详解

如mysql的jdbc:mysql://127.0.0.1:3306/news?useSSL=falsejdbc:mysql(数据库名)://127.0.0.1(数据服务器IP):3306(数据库端口号)/news(要操作的database名)?useSSL=false(操作参数)

2022-04-10 15:04:53 1817

原创 Linux基本指令

目录ls 指令pwd命令cd 指令touch指令mkdir指令(重要):rmdir指令 && rm 指令(重要):man指令(重要):cp指令(重要):mv指令(重要):catdatetopshutdown-关机重要的几个热键[Tab],[ctrl]-c, [ctrl]-d以下命令作为扩展-了解:ls 指令语法: ls [选项] [目录或文件]功能:对于目录,该命令列出该目录下的所有子目录与文件。对于...

2022-04-08 22:23:35 125

原创 Leetcode 3: 无重复字符的最长子串

给定一个字符串s,请你找出其中不含有重复字符的最长子串的长度。class Solution { public int lengthOfLongestSubstring(String s) { // 哈希集合,记录每个字符是否出现过 Set<Character> occ = new HashSet<Character>(); int n = s.length(); // 右指针,初始值为 -...

2022-04-07 23:07:46 90

原创 C语言 字符函数和字符串函数(3)

9.strtok(分隔字符串集合)char * strtok ( char * str, const char * sep );sep参数是个字符串,定义了用作分隔符的字符集合 第一个参数指定一个字符串,它包含了0个或者多个由sep字符串中一个或者多个分隔符分割的标记。 strtok函数找到str中的下一个标记,并将其用 \0 结尾,返回一个指向这个标记的指针。(注:strtok函数会改变被操作的字符串,所以在使用strtok函数切分的字符串一般都是临时拷贝的内容并且可修改。) strtok

2022-04-05 19:27:00 96

原创 Leetcode 19: 删除链表的倒数第 N 个结点(快慢指针法)

给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。代码:class Solution { public ListNode removeNthFromEnd(ListNode head, int n) { ListNode pre = new ListNode(0); pre.next = head; ListNode start = pre, end = pre; while(n != 0) .

2022-04-05 11:15:00 165

原创 Leetcode 876: 链表的中间结点 (快慢指针法)

给定一个头结点为head的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。代码class Solution { public ListNode middleNode(ListNode head) { if(head == null){ return null; } ListNode fast = head; ListNode slow = head; ..

2022-04-05 10:15:00 126

原创 C语言 字符函数和字符串函数(2)

5.strncpychar * strncpy ( char * destination, const char * source, size_t num );拷贝num个字符从源字符串到目标空间。 如果源字符串的长度小于num,则拷贝完源字符串之后,在目标的后边追加0,直到num个。注意区分下面两个代码的区别!!!当strncpy需要拷贝的字符不够时,会拷贝‘/0’代替!6.strncatchar * strncat ( char * destinatio...

2022-04-04 16:10:25 861

原创 Leetcode 557: 反转字符串中的单词 III

给定一个字符串s,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。class Solution { public String reverseWords(String s) { StringBuffer ret = new StringBuffer(); int length = s.length(); int i = 0; while(i < length){ int ..

2022-04-04 12:45:00 414

原创 Leetcode 344: 反转字符串(双指针)

编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。class Solution { public void reverseString(char[] s) { int left = 0; int right = s.length-1; while(left <= right){ .

2022-04-04 09:45:00 292

原创 C语言 字符函数和字符串函数(1)

1.strlensize_t strlen ( const char * str );字符串已经 '\0' 作为结束标志,strlen函数返回的是在字符串中 '\0' 前面出现的字符个数(不包含 '\0' )。 参数指向的字符串必须要以 '\0' 结束。 注意函数的返回值为size_t,是无符号的( 易错 ) 学会strlen函数的模拟实现#include <stdio.h>int main(){ const char* str1 = "abcdef"; con..

2022-04-03 13:45:00 705

原创 Leetcode 167: 两数之和 II - 输入有序数组(二分查找+双指针)

给你一个下标从 1 开始的整数数组numbers ,该数组已按 非递减顺序排列,请你从数组中找出满足相加之和等于目标数target 的两个数。如果设这两个数分别是 numbers[index1] 和 numbers[index2] ,则 1 <= index1 < index2 <= numbers.length 。以长度为 2 的整数数组 [index1, index2] 的形式返回这两个整数的下标 index1 和 index2。你可以假设每个输入 只对应唯一的答...

2022-04-03 09:00:00 96

原创 Leetcode 189: 轮转数组(翻转法)

给你一个数组,将数组中的元素向右轮转k个位置,其中k是非负数。题解:class Solution { public void rotate(int[] nums, int k) { k %= nums.length; reverse(nums, 0, nums.length-1); reverse(nums, 0, k-1); reverse(nums, k, nums.length-1); } pub...

2022-04-02 13:49:01 193

原创 Leetcode 283: 移动零 (双指针法)

给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。请注意,必须在不复制数组的情况下原地对数组进行操作。自己写的:class Solution { public void moveZeroes(int[] nums) { int n = nums.length; int i = 0; int j = 0; while(i < n){ if(num...

2022-04-02 13:25:11 391 1

原创 C语言——指针进阶(3)面试题

1.//结构体的大小是20个字节struct Test{ int Num; char* pcName; short sDate; char cha[2]; short sBa[4];}* p;//假设p 的值为0x100000。 如下表表达式的值分别为多少?//已知,结构体Test类型的变量大小是20个字节int main(){ p = (struct Test*)0x100000; printf("%p\n", p + 0x1); printf("%p\n", (.

2022-04-01 09:45:00 290

原创 C语言——指针进阶(2)sizeof、strlen讲解

数组名是什么呢?数组名通常来说是数组首元素的地址但是有2个例外:1. sizeof(数组名),这里的数组名表示整个数组,计算的是整个数组的大小2. &数组名,这里的数组名表示整个数组,取出的是整个数组的地址整形数组:int main(){ int a[] = { 1,2,3,4 }; int(*p)[4] = &a; printf("%d\n", sizeof(a));//4*4 = 16 printf("%d\n", sizeof(a + 0));//4/

2022-03-31 12:48:46 116

原创 C语言——指针进阶(1)

一、字符指针通常我们使用字符指针来存放字符的地址:#include <stdio.h>int main(){ char a = 'A'; char* pa = &a; printf("%c", *pa); return 0;}pa就是一个字符指针变量。#include <stdio.h>int main(){ char* str = "abcdefgh"; printf("%s", str); return 0;}注意的是此时

2022-03-22 22:37:58 160

原创 多线程(进阶)(高频八股文型面试题)

1 如果synchronized是修饰普通方法的,就针对当前this(当前对象的引用)进行加锁如果两个线程同时调用这个方法的时候,不一定会触发锁竞争的操作,看是否出发锁竞争就看当前锁住的对象是不是同一个了(如果是不同的对象调用increase,就不会触发锁);2 如果synchronized是修饰静态方法的,当前锁住的是当前类的类对象,由于类对象是单例的,所以两个线程并发调用该静态方法就一定会竞争锁;Java中任意一个对象都可以作为锁对象,这里面包含对象头,对象头包含了一些各种对象的公共属性

2022-03-19 23:06:36 135

原创 Leetcode 796:旋转字符串 (C语言+JAVA)

实现一个函数,可以左旋字符串中的k个字符

2022-03-08 00:24:39 144 1

转载 Leetcode 102.二叉树的层序遍历 ——BFS

给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。解题思路本文将会讲解为什么这道题适合用广度优先搜索(BFS),以及 BFS 适用于什么样的场景。DFS(深度优先搜索)和 BFS(广度优先搜索)就像孪生兄弟,提到一个总是想起另一个。然而在实际使用中,我们用 DFS 的时候远远多于 BFS。那么,是不是 BFS 就没有什么用呢?如果我们使用 DFS/BFS 只是为了遍历一棵树、一张图上的所有结点的话,那么 DFS 和 BFS 的能力没什么差

2022-03-05 22:03:55 185

原创 初识操作系统

目录进程和线程时间片并发与并行进程中的上下文进程状态进程和线程如:张三去银行转账,就要使用银行的资源(接待,转账人员,银行电脑,必要时保安也可以跟着:) )为张三完成转 账,而在银行内部,这一整套过程的执行,我们统称为办理业务。 类比,一个程序刚开始就是一个在硬盘上的程序,加载运行时,是为了完成某些任务(如迅雷完成下载务),而要 完成任务,就需要操作系统为该任务提供足够做的资源(如内存和CPU资源),而这一整套任务的执行,我们可以叫做进程。所以:进程是担当分...

2022-03-04 22:33:57 208

原创 Leetcode 917.仅仅反转字母

给你一个字符串 s ,根据下述规则反转字符串:所有非英文字母保留在原有位置。 所有英文字母(小写或大写)位置反转。返回反转后的 s 。思路:双指针根据题意进行模拟即可,每次都使用 i 和 j 分别指向左端和右端可以被交换的字母,若当前指针指向的不是字母,则分别往中间移动,直到找到下一个可交换的字母位置,每次交换结束,两指针均往中间移动一位。class Solution { public String reverseOnlyLetters(String s) {

2022-02-28 21:50:51 232

原创 C语言——深度剖析数据在内存中的存储

数据在内存中的存储方式详解

2022-02-26 22:36:18 408 1

原创 算法:平衡二叉树

平衡二叉树

2022-02-25 22:49:19 746

原创 算法:有效的括号

算法:有效的括号!Stack的练习,保姆级的解答!

2022-02-25 00:30:00 130

原创 算法: 最小栈

设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。实现 MinStack 类:MinStack() 初始化堆栈对象。void push(int val) 将元素val推入堆栈。void pop() 删除堆栈顶部的元素。int top() 获取堆栈顶部的元素。int getMin() 获取堆栈中的最小元素。示例 1:输入:["MinStack","push","push","push","getMin","pop","top","getMin"

2022-02-24 10:15:00 192

原创 算法:杨辉三角

杨辉三角保姆级别的分析理解!

2022-02-23 17:08:41 240

原创 什么是MySQL索引?

全网最全面的mysql索引总结!!!

2022-02-21 23:23:33 8214 1

原创 算法:反转链表(双指针迭代法)

必会的算法题:反转链表。

2022-02-15 00:41:41 649 3

原创 算法:旋转数组的最小数字

旋转数组的最小数字,核心考点:数组理解,二分查找,临界条件

2022-02-11 17:56:15 320

原创 C语言扫雷游戏代码实现

C语言扫雷代码实现

2022-01-27 12:17:22 98 1

空空如也

空空如也

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

TA关注的人

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