自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 (二)一起学习一下面向对象

面相对象四大特性

2023-02-12 18:48:07 56

原创 (一)什么是 “好” 代码?

什么是好代码

2023-02-08 10:26:33 54

原创 集合框架之 HashMap 源码分析

原理学习之 —— hashMap存储结构put 方法(重点)hashMap 扩容JDK 1.7 (先扩容再插入)JDK 1.8 (先插入再扩容,减少一次无效扩容)如何通过 hash 确定桶的下标JDK 1.8 变化问题补充数组下标三联问 ——> [出处](https://blog.csdn.net/carson_ho/article/details/79373026)文章参考(????) 存储结构 以 Entry 类型的数组 table 作为存储结构,从 Entry 的 next 可以看出 Entry

2021-06-18 16:43:38 77

原创 leetcode 每日打卡—————「32. 最长有效括号」

题目点击这里 ➡️「下一个排列」 给你一个只包含 ‘(’ 和 ‘)’ 的字符串,找出最长有效(格式正确且连续)括号子串的长度。 思路: 只有字符串中出现了 ‘)’ 才有可能出现格式正确的情况,利用栈后入先出的特点,从头遍历字符串 s,对于每个字符而言,若为 ‘(’ 则如栈,若为‘)’则需要分情况讨论: 若当前栈为空,说明没有匹配成功,更新为下一批有效括号的索引,如果栈不为空,当前右括号的下标减去栈顶元素即为复合条件的括号长度。 public int longestValidParentheses(Stri

2021-05-30 22:33:59 57

原创 leetcode 每日打卡—————「31. 下一个排列」

题目点击这里 ➡️「下一个排列」 思路: 题目简化描述就是寻找仅比当前数组大的全排列! 那么如何让移动可以尽量小的让全排列变大? 即让变大的数字尽可能处于低位(个位变大肯定比十位变大整体变大的少)。 eg:1,2,3,6,5,4 第一步肯定是3和4对调符合部分题目要求 1,2,4,6,5,3(3为较小值,4为较大值) 寻找较小值(需要被右侧数字替换的数字)的方法:从右往左寻找第一个sum[i] < sum[i+1]的值,sum[i]即为较小值; 寻找较大值:从右往左第一个比较小值大的即为较大值。 这时

2021-05-27 12:05:27 53

原创 leetcode 每日打卡———「23. 合并K个升序链表」

题目点击这里 ➡️「合并K个升序链表」 思路:首先需要注意,这些链表都是升序链表,那么每次合并后链表的新节点肯定是这K个节点中值最小的一个,所以我们需要一个列表来维护这些节点,为了便于找到这个列表中最小的元素,我们选择使用优先队列来维护K个节点,当一个节点被选中后,这个节点对应链表中的下一个节点就要补充进来。 class Solution { // ListNode没有实现Comparable,所以需要我们重新定义一个类,用于排序 static class Pair implements Comp

2021-05-26 10:14:50 64

原创 leetcode 每日打卡————「22. 括号生成」

题目点击这里 ➡️「三数之和」 思路: 深度便利 + 满足筛选条件; 当满足左括号数量 == 右括号数量 == 0时,将获得结果,将结果存入数组列表中。(整个过程中需要满足左括号数量 >= 右括号数量) class Solution { List<String> res = new ArrayList<>(); public List<String> generateParenthesis(int n) { dfs("", n, n)

2021-05-26 09:59:28 75

原创 leetcode 每日打卡————「15. 三数之和」

题目点击这里 ➡️「三数之和」 思路:(双指针) 数组进行排序后选定一个基准的数字 nums[i],选定双指针分别指向 nums[i] 的后一个数字(nums[l])和数组的最后一个数字(nums[r]),由于数组是有序的,可以根据与零比较的结果移动左指针和右指针。 public List<List<Integer>> threeSum(int[] nums) { // 排序 Arrays.sort(nums); List<Lis

2021-05-22 09:10:16 60

原创 leetcode 每日打卡————「11. 盛最多水的容器」

题目点击这里 ➡️「盛最多水的容器」 思路:这道题最简单的解法就是 O(n^2)直接遍历,但是这种解法不是我们需要的,算法就是为了提升效率,我们采用 O(n)的指针法来解决问题。 首先要知道什么情况下水池的面积最大?当然是两条边距离越远,同时两条边长度越长才会使水的面积越大。 所以我们从头尾两个节点开始,这是距离最远的两个节点,“木桶原理“,最短边决定水的面积,所以两条边进行比较短边则向前移动,直到二者相碰循环结束。 public int maxArea(int[] height) { in

2021-05-18 00:35:21 67

原创 redis 最基础的数据结构也该知道了

底层数据结构简单动态字符串(SDS)什么是SDSSDS与C字符串一样吗链表链表的实现字典字典的底层实现字典是怎么解决键冲突跳跃表跳跃表的底层实现整数集合整数集合的底层实现升级 & 降级压缩列表压缩列表的底层实现连锁更新----对象----对象类型对象内存处理面试题相关整理 简单动态字符串(SDS) 什么是SDS SDS与C字符串一样吗 链表 链表的实现 字典 字典的底层实现 字典是怎么解决键冲突 跳跃表 跳跃表的底层实现 整数集合 整数集合的底层实现 升级 & 降级 压缩列表 压缩列表的底层

2021-05-17 02:07:53 133

原创 leetcode 每日打卡————「4. 寻找两个正序数组的中位数」

题目点击这里 ➡️「寻找两个正序数组的中位数」 思路(合并数组,寻找中位数): public double findMedianSortedArrays(int[] nums1, int[] nums2) { int[] nums = new int[nums1.length + nums2.length]; int index=0,l1=0,l2=0; while (l1 < nums1.length && l2 < nums2.

2021-05-16 17:18:25 108 2

原创 leetcode 每日打卡————「5. 最长回文子串」

题目点击这里 ➡️「最长回文子串」 思路: 首先考虑如何判断某字符串是否为回文子串? 1、若字符串长度为 1,则是回文子串; 2、若字符串长度为 2,则考虑两个字符是否相等; 3、长度大于 2 时,需要考虑的是,首尾两个字符是否相等,同时去掉首尾后剩下的便是其子串(也需要是回文串)。 public String longestPalindrome(String s) { int result = 1, start = 0; int len = s.length();

2021-05-14 01:19:11 81

原创 leetcode 每日打卡————「3. 无重复字符的最长子串」

题目点击这里 ➡️「无重复字符的最长子串」 思路:采用滑动窗口的思想,保持左边界不变,右边界不断增加,通过 Set 来判断是否有重复的字符存在。 public int lengthOfLongestSubstring(String s) { Set<Character> set = new HashSet<Character>(); int len = s.length(); // 右边界初始值为 -1,表示从第一个字符开始

2021-05-14 00:31:02 52

原创 并发编程必知必会的基础

并发编程实战读书笔记基础知识 基础知识

2020-12-01 19:10:49 178

原创 计算机学渣和你说说从毕业到工作

经历初衷校园憧憬????热爱????学习????找工作????社畜生活????初入职场读书感想未完待续 初衷 大学生活很美好但也很短暂,仔细想想自己也工作3个月了,我从来不是一个擅长抒发情感的人,但人总会变不是吗,趁着现在还能记得一些学生时代的事情,写个总结记录下不算精彩但独一无二的人生经历。 校园 憧憬???? 相信大家和我一样从上大学之前就被灌输 “上了大学就轻松了” 的思想,怀着满腔热血好好学习只为了上大学去轻松???? 第一次来到威海这座城市还是2016年,时隔四年已经忘记了入学时的感受,但仍记得军

2020-10-18 19:03:29 1618 6

空空如也

空空如也

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

TA关注的人

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