自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 博客搭建参考

搭建博客步骤参考

2023-02-02 10:43:43 224 1

原创 超市管理系统数据库设计

超市管理系统数据库设计设计背景现如今,各个超市因为规模普遍较大,需要处理的商品数以千计,而且每天的进货和销售情况纷繁复杂,早时的记账方式已经无法满足已经步入信息化的时代。因此以计算机开发的软件系统代替人工来处理庞大的数据已经成为必然。使用计算机对超市信息进行管理有着手工管理所无法比拟的优点,例如:检索等待时间短、查找方便快捷、可靠性稳定性高、存储量大、保密性好以及成本低等。设计意义超市管理者使用超市管理系统来管理商品信息以及进货销售记录等可以大大减少人力的投入。其次为了超市能长期经营必须要有一套管理

2022-04-17 14:55:27 11805 2

原创 LeetCode46. 全排列(回溯算法)

回溯算法求解全排列问题

2022-03-28 22:08:50 257

原创 Java并发:最全思维导图整理

Java并发思维导图

2022-03-23 22:17:50 873

原创 线程池:线程池夺命连环十八问

线程池夺命连环十八问

2022-03-23 08:46:36 345

原创 Java并发六十问,快来看看你会多少道

Java中并发知识总结

2022-03-22 21:28:26 425

原创 操作系统常见知识总结

操作系统常见面试题

2022-03-20 17:20:02 1223

原创 如何查看浏览器的DNS 缓存信息

如何查看 DNS 缓存信息

2022-03-20 09:29:18 3397

原创 三万字,七十图,详解计算机网络六十二问(收藏版)

详解计算机网络六十二问

2022-03-20 08:54:27 321

原创 ARP协议

ARP详解

2022-03-20 08:20:07 124

原创 ping 命令的实现

TTL值代表的是echo在网络存在的时间。TTL值代表的是echo在网络存在的时间。作用:1.检测网络是否通畅2.网络连接速度是否 OK可用于分析和判定网络故障。实现原理ping属于哪一层?ping命令使用的tcp报文还是udp报文呢?答:PING是应用层直接使用网络层ICMP的一个例子,它没有通过运输层的TCP或UDP。PING命令是使用网络层 ICMP协议实现的,那么ICMP是如何实现的对了解PING是至关重要的?过程:Ping命令就是发送ICMP的echo包,通过回

2022-03-20 07:54:48 3437

原创 如何优化高并发TCP链接中产生的大量的TIME_WAIT的状态

如何优化高并发TCP链接中产生的大量的TIME_WAIT的状态

2022-03-20 07:30:26 428

原创 simhash算法

详情见文章:simhash算法

2022-03-19 23:44:11 281

原创 剑指 Offer 系列题解

剑指Offer 系列题解

2022-03-19 14:25:20 506

原创 [LeetCode15] 三数之和

解法:排序+双指针class Solution { public List<List<Integer>> threeSum(int[] nums) { Arrays.sort(nums); List<List<Integer>> res = new ArrayList<>(); for(int k = 0; k < nums.length - 2; k++){

2022-03-17 01:26:56 387

原创 Amazon Kinesis Data Firehose调研

Amazon Kinesis Data Firehose调研简介Amazon Kinesis 可让您轻松收集、处理和分析实时流数据,以便您及时获得见解并对新信息快速做出响应。Amazon Kinesis 提供多种核心功能,可以经济高效地处理任意规模的流数据,同时具有很高的灵活性,让您可以选择最符合应用程序需求的工具。借助 Amazon Kinesis,您可以获取视频、音频、应用程序日志和网站点击流等实时数据,也可以获取用于机器学习、分析和其他应用程序的 IoT 遥测数据。借助 Amazon Kine

2022-03-16 20:28:56 868

原创 剑指 Offer 36. 二叉搜索树与双向链表(中序遍历+双指针)

思路双向循环链表:链表、双向、循环下面解释下:双向:链表每个节点都有两个指针,前驱指针、后继指针循环:链表头结点和尾节点也互相连接。解法:二叉树中序遍历+双指针class Solution { Node pre, head; public Node treeToDoublyList(Node root) { if(root == null) return null; // 双向链表已完成 dfs(ro

2022-03-11 17:45:41 531

原创 剑指 Offer 35. 复杂链表的复制(哈希表)

哈希表使用

2022-03-11 11:41:38 550

原创 面渣逆袭:JVM经典五十问,这下面试稳了

面渣逆袭:JVM经典五十问,这下面试稳了

2022-03-11 10:53:54 192

原创 阿里 HashMap 面试夺命连环 21 问

阿里 HashMap 面试夺命连环 21 问

2022-03-11 10:52:29 242

原创 数据结构在算法中的应用总结XMind图直观

按照XMind中图再刷一遍

2022-03-10 13:58:19 214

原创 剑指 Offer 66. 构建乘积数组

思路按照正常的思路,既然 B[i]=A[0]×A[1]×…×A[i-1]×A[i+1]×…×A[n-1],那么想要计算出 B[i] 来那每次都去遍历数组 A,把这些数字相乘就行了。而数组 B 的长度为 n,并且计算数组 B 中的每个元素时都需要完整的遍历一遍数组 A,而数组 A 的长度为 n,那么整体的时间复杂度就达到了 O(N2) 级别,按照这个逻辑写出的代码提交会超时。那么哪里可以优化呢?上面的暴力解法中充斥着大量重复的计算!比如数组 A 为 [1,2,3,4,5] 。1、想要计算除了 2

2022-03-10 13:40:41 111

原创 面试题61. 扑克牌中的顺子(集合 Set / 排序)

思路根据题意,此 5 张牌是顺子的 充分条件 如下:除大小王外,所有牌 无重复 ;设此 55 张牌中最大的牌为 max ,最小的牌为 min (大小王除外),则需满足:max - min < 5因而,可将问题转化为:此 5 张牌是否满足以上两个条件?解法一:哈希表class Solution { public boolean isStraight(int[] nums) { Set<Integer> set = new HashSet<&gt

2022-03-10 13:16:46 213

原创 剑指 Offer 30. 包含min函数的栈

思路由于需要在常数时间内找到最小的元素,那么说明肯定是不能使用遍历,因为遍历是 O(n) 级别的时间,那么只能使用辅助空间进行存储,这是一种空间换时间的思想。这里我们设置两个栈:普通栈和辅助栈。解法:两个栈实现class MinStack { Stack<Integer> stack; Stack<Integer> minStack; /** initialize your data structure here. */ public Min

2022-03-10 09:37:54 216

原创 剑指 Offer 21. 调整数组顺序使奇数位于偶数前面(双指针)

思路为了得到这样一个结果,需要执行如下的操作:考虑定义双指针 ii , jj 分列数组左右两端,循环执行:1、指针 ii 从左向右寻找偶数;2、指针 jj 从右向左寻找奇数;3、将 偶数 nums[i]nums[i] 和 奇数 nums[j]nums[j] 交换。可始终保证: 指针 ii 左边都是奇数,指针 jj 右边都是偶数解法:双指针法class Solution { public int[] exchange(int[] nums) { int left = 0

2022-03-10 09:20:21 161

原创 剑指 Offer 26. 树的子结构(递归)

思路先序遍历树 A,判断树 A 中的每个节点x 为根的子树是否包含树 B。上面这句话包含两个步骤:先序遍历树 A 的每个节点判断以树 A 的每个节点为根节点的子树是否包含 树 B解法:class Solution { public boolean isSubStructure(TreeNode A, TreeNode B) { return (A != null && B != null) && (recur(A, B) || isSu

2022-03-10 07:58:21 75

原创 剑指 Offer 32 - III. 从上到下打印二叉树 III

面试题32 - I. 从上到下打印二叉树 主要考察 树的按层打印 ;面试题32 - II. 从上到下打印二叉树 II 额外要求 每一层打印到一行 ;本题额外要求 打印顺序交替变化(建议按顺序做此三道题)。解法思路:1、用一个变量来判断该层是奇数层还是偶数层2、双端队列的应用class Solution { public List<List<Integer>> levelOrder(TreeNode root) { if(root==null){

2022-03-10 07:36:53 152

原创 面试题32 - I. 从上到下打印二叉树

解法:class Solution { public int[] levelOrder(TreeNode root) { if(root==null){ return new int[]{}; } Queue<TreeNode> queue = new LinkedList<>(); queue.add(root); List<Integer> result

2022-03-10 06:53:53 187

原创 剑指 Offer 32 - II. 从上到下打印二叉树 II

二叉树的层级打印用队列

2022-03-10 06:41:01 65

原创 思维导图系列之Redis知识梳理

思维导图系列之Redis知识梳理

2022-03-09 21:59:39 686

原创 剑指 Offer 46. 把数字翻译成字符串

解法:字符串遍历class Solution { public int translateNum(int num) { String s = String.valueOf(num); int a = 1, b = 1; for(int i = 2; i <= s.length(); i++) { String tmp = s.substring(i - 2, i); int c = tmp.com

2022-03-09 21:53:34 225

原创 剑指 Offer 54. 二叉搜索树的第k大节点

解法:class Solution { int res = 0; int count = 0; public int kthLargest(TreeNode root, int k) { helper(root,k); return res; } public void helper(TreeNode root,int k){ if(root==null){ return; }

2022-03-09 21:15:41 187

原创 剑指 Offer 53 - II. 0~n-1中缺失的数字

解法:二分查找法class Solution { public int missingNumber(int[] nums) { int i =0,j = nums.length-1; while(i<=j){ int m = (i+j)/2; if(nums[m]==m){ i = m+1; }else{ j = m-1;

2022-03-09 20:58:22 96

原创 Offer58-ii 左旋转字符串

解法一:切片解法class Solution { public String reverseLeftWords(String s, int n) { return s.substring(n, s.length()) + s.substring(0, n); }}时间复杂度:O(N)空间复杂度:O(N)解法二:列表class Solution { public String reverseLeftWords(String s, int n) {

2022-03-09 20:31:41 179

原创 Offer55ii. 平衡二叉树

解法一:自顶向下class Solution { public boolean isBalanced(TreeNode root) { if(root==null){ return true; } return Math.abs(maxDepth(root.left)-maxDepth(root.right))<=1&&isBalanced(root.left)&&isBalanced(r

2022-03-09 18:29:49 100

原创 Offer55. 二叉树的最大深度(bfs,dfs)

总结树的遍历:树的递归/深度优先搜索使用的数据结构:栈树的层序遍历/广度优先搜索使用的数据结构:队列解法一:树的后序遍历class Solution { public int maxDepth(TreeNode root) { if(root==null){ return 0; } int left = maxDepth(root.left); int right = maxDepth(root.righ

2022-03-09 15:01:44 160

原创 Offer 47.礼物的最大价值

解法一:动态规划class Solution { public int maxValue(int[][] grid) { int row = grid.length; int col = grid[0].length; int[][] dp = new int[row][col]; dp[0][0] = grid[0][0]; // 只有一列 for(int i=1;i<row;i++){

2022-03-09 14:34:17 558

原创 Offer63. 股票的最大利润

class Solution { public int maxProfit(int[] prices) { int max = 0; int min = Integer.MAX_VALUE; for(int i=0;i<prices.length;i++){ min = Math.min(min,prices[i]); max = Math.max(max,prices[i]-min);

2022-03-09 13:27:25 392

原创 思维导图系列之MySQL知识梳理

https://blog.csdn.net/weixin_41846320/article/details/103203629

2022-03-08 19:53:05 145

原创 【leetcode583】两个字符串的删除操作

方法一:最长公共子序列给定两个字符串 word1 和 word2 ,分别删除若干字符之后使得两个字符串相同,则剩下的字符为两个字符串的公共子序列。为了使删除操作的次数最少,剩下的字符应尽可能多。当剩下的字符为两个字符串的最长公共子序列时,删除操作的次数最少。因此,可以计算两个字符串的最长公共子序列的长度,然后分别计算两个字符串的长度和最长公共子序列的长度之差,即为两个字符串分别需要删除的字符数,两个字符串各自需要删除的字符数之和即为最少的删除操作的总次数。关于最长公共子序列,请读者参考「1143. 最

2022-02-27 16:43:59 188

空空如也

空空如也

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

TA关注的人

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