自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

zuel_Jacob的博客

让一让!程序小白来啦!

  • 博客(44)
  • 收藏
  • 关注

原创 leetcode刷题 剑指offer 其他

打印从1到最大的数题目描述:https://leetcode-cn.com/problems/da-yin-cong-1dao-zui-da-de-nwei-shu-lcof/class Solution { public int[] printNumbers(int n) { String zeros = ""; for(int i = 0; i < n; i++) { zeros += "0"; } int max = Inte

2021-04-01 20:08:24 109

原创 leetcode刷题 剑指offer 位运算

二进制中1的个数题目描述:https://leetcode-cn.com/problems/er-jin-zhi-zhong-1de-ge-shu-lcof/public class Solution { // you need to treat n as an unsigned valuepublic int hammingWeight(int n ) { int res = 0; while(n != 0) { res += n & 1; n >&g

2021-03-27 20:49:10 84

原创 leetcode刷题 剑指offer 数学

圆圈中最后剩下的数字题目描述:https://leetcode-cn.com/problems/yuan-quan-zhong-zui-hou-sheng-xia-de-shu-zi-lcof/解法1:模拟class Solution {public int lastRemaining(int n, int m) { if(n == 0 || m == 0) return -1; List<Integer> list =new ArrayList<&g

2021-03-27 17:34:59 79

原创 leetcode刷题 剑指offer 动态规划

斐波那契数列题目描述:https://leetcode-cn.com/problems/fei-bo-na-qi-shu-lie-lcof/class Solution { public int fib(int n) { if(n == 0) return 0; int[] dp = new int[n + 1]; dp[0] = 0; dp[1] = 1; for(int i = 2; i < n + 1 ;i++) { dp[i]

2021-03-20 10:41:50 90

原创 leetcode刷题 剑指offer 排序

调整数组顺序使得奇数位于偶数前面题目描述:https://leetcode-cn.com/problems/diao-zheng-shu-zu-shun-xu-shi-qi-shu-wei-yu-ou-shu-qian-mian-lcof/解法1:开辟两个额外数组 public int[] exchange(int[] nums) { List<Integer> oddarr = new ArrayList<Integer>(); List<I

2021-03-19 15:32:59 82

原创 leecode刷题 剑指offer 搜索算法

矩阵中的路径题目描述:https://leetcode-cn.com/problems/ju-zhen-zhong-de-lu-jing-lcof/class Solution { public boolean exist(char[][] board, String word) { char[] words = word.toCharArray(); for(int i =0; i < board.length; i++) { for(int j =

2021-03-15 15:31:19 77

原创 leetcode刷题 剑指offer 二分查找法

旋转数组的最小数字题目描述:https://leetcode-cn.com/problems/xuan-zhuan-shu-zu-de-zui-xiao-shu-zi-lcof/解法:二分法,首尾中间很重要class Solution{ public int minArray(int[] numbers) { int i = 0, j = numbers.length - 1; while(i < j) { int m = (i+j)/2; if(numbers[m

2021-03-14 10:57:00 64

原创 leetcode刷题 字节常见面试题

字节常见面试题来源:codeTop无重复字符的最长子串题目描述:https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/解题思路:滑动窗口,set判定重复,滑动窗口左右边界的移动class Solution { public int lengthOfLongestSubstring(String s) { Set<Character> set = new H

2021-03-06 10:29:30 294 1

原创 leetcode刷题 贪心算法

贪心算法主要思想:保证每次操作都是局部最优的,并且最后得到的结果是全局最优的分配饼干题目描述:https://leetcode.com/problems/assign-cookies/description/解题思路:每一次发饼干都发给食量最小的孩子,提醒数组要多用指针!class Solution { public int findContentChildren(int[] g, int[] s) { if(g.length == 0 || s.length

2021-03-05 21:54:36 158

原创 leetcode刷题 多线程问题

多线程顺序打印1.(阿里面试题)线程A只负责打印A,线程B只负责打印B,线程C只负责打印C,现在要求实现ABCABC依次打印。思路:打印方法的封装,线程的调度。/** * 封装打印方法类 * 在方法中实现线程调度 * @author asus * */class Myservice { public int flag = 1; public void printA() throws InterruptedException { while(true) { sync

2021-03-05 16:11:20 198

原创 阿里后端开发面试题 找出数组的全排列

题目描述:给定一个数组,请输出其全部排列顺序,如[1,2,3],请输出[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]解题思路:递归思想,固定数组第一位,其余部分看作递归整体class Solution{ List<int[]> reslist = new ArrayList<>(); public List<int[]> printAll(int[] nums){ findAllSort(nums, 0);

2021-03-04 17:52:32 107 2

转载 拜占庭将军问题

这个问题在读文献的过程中遇到过很多次了,但都没有真正理解过。这次借读论文的机会,对拜占庭问题进行一个整理。资料来源:1.维基百科——拜占庭将军问题拜占庭将军问题(Byzantine Generals Problem),是由莱斯利·兰波特在其同名论文中提出的分布式对等网络通信容错问题。在分布式计算中,不同的计算机通过通讯交换信息达成共识而按照同一套协作策略行动。但有时候,系统中的成员计算机可能出错而发送错误的信息,用于传递信息的通讯网络也可能导致信息损坏,使得网络中不同的成员关于全体协作的策略

2021-03-02 20:19:24 424

原创 leetcode刷题 剑指offer 树

重建二叉树题目描述:https://leetcode-cn.com/problems/zhong-jian-er-cha-shu-lcof//** * 重建树就是找到正确的左右孩子 * @param preorder * @param inorder * @return */ public TreeNode buildTree(int[] preorder, int[] inorder) { return buildTreeHelper(preorder, 0, preo

2021-02-28 17:19:13 110

原创 leetcode刷题 剑指offer 链表

从尾到头打印链表题目描述:https://leetcode-cn.com/problems/cong-wei-dao-tou-da-yin-lian-biao-lcof/解法1:链表插头法/** * 头插法 * @param head * @return */ public int[] reversePrint(ListNode listNode) { ListNode head = new ListNode(-1); while(listNode != null)

2021-02-27 21:37:44 100 2

原创 leetcode刷题 剑指offer 双指针

和为S的两个数字题目描述:https://leetcode-cn.com/problems/he-wei-sde-liang-ge-shu-zi-lcof/解法1:暴力破解/** * 暴力破解:时间复杂度O(N^2) * @param nums * @param target * @return */ public int[] twoSum(int[] nums, int target) { if(nums.length == 0 && n

2021-02-27 09:22:31 65

原创 leetcode刷题 剑指offer 栈队列堆

用两个栈实现队列题目描述:https://leetcode-cn.com/problems/yong-liang-ge-zhan-shi-xian-dui-lie-lcof/class CQueue { //一个负责插入一个负责删除 LinkedList<Integer> stack1; LinkedList<Integer> stack2; public CQueue() { stack1 = new LinkedList<Intege

2021-02-26 10:15:13 105

原创 leetcode刷题 剑指offer 数组与矩阵专题

从今天开始备战春招提前批,每天早中晚各完成三道leetcode题目,主攻剑指offer,按照题目类型解题总结在博客中。每一道题必须用两种解法完成。数组中重复的数字题目描述:https://leetcode-cn.com/problems/shu-zu-zhong-zhong-fu-de-shu-zi-lcof/解法一:双指针遍历 public int findRepeatNumber(int[] nums) { for(int i = 0; i < nums.leng

2021-02-25 17:22:25 86

原创 leetcode刷题 从中序与后序遍历序列构造二叉树

今天这个代码是真的没看太懂,树这一块的内容还有很多琢磨的地方class Solution{ int post_idx; int[] postorder; int[] inorder; Map<Integer, Integer> idx_map = new HashMap<Integer, Integer>(); public TreeNode helper(int in_left, int in_right) { if(in_left > in_ri

2021-01-19 18:22:27 56

原创 leetcode刷题 路径总和

这道题我一开始只想到了用深度优先来进行思考,其实广度优先和深度优先应在树的相关题目中以同样的权重进行思考,两种方式的变形有很多,然后再添加上一下其他数据结构的辅助来进行解题。class Solution { public boolean hasPathSum(TreeNode root, int sum) { if(root == null) { return false; } Queue<TreeNode> queNode = new L

2021-01-18 18:06:43 95

原创 leetcode刷题 对称二叉树

好久没刷题了,手感非常差啊。这道题我一开始想的简单了,我以为就是用一个层次遍历,然后再去检查每一层是否是对称数组就可以了。但是后来通过报错发现,这和左右子树的出现顺序也是有关系,不能仅仅通过对称来判断。因此,后来看了题解解题,但是又死活有问题。最后我发现是在queue的实现上,不同的容器效果不一样,我最初是使用的,Queue<TreeNode> queue = new ArrayDeque<>();,发现这种实现不允许队列中插入空值,因此要换用另外一种实现,LinkedLis

2021-01-08 15:37:50 71

原创 leetcode刷题 树的的最大深度

最大深度算法其实就是遍历树算法的变形class Solution { //全部都是树遍历算法的变形 int answer = 0; public int maxDepth(TreeNode root) { if(root == null) return 0; int depth = 0; findMaxDepth(root, depth); return answer + 1; } private void fin

2021-01-08 11:21:35 69

原创 leetcode刷题总结 程序员必须秒杀的算法

所谓秒杀,就是背下来,用java能够迅速写出来最经典的解题代码。如果还有很长的反应时间,那就说明掌握的并不扎实。一、排序算法冒泡排序 选择排序 插入排序 归并排序 快速排序二、查找算法二分查找三、树的有关算法深度优先查找:前中后序遍历 广度优先查找后续继续更新,根据这个要求来对编码能力进行训练,快速反应,迅速写出来。...

2021-01-08 10:43:03 216

原创 leetcode刷题 二叉树的层序遍历

2020的最后一题啦,新年快乐,争取明年这个时候变成一个leetcode做题家class Solution { //根据广度优先查询的一种变形 public List<List<Integer>> levelOrder(TreeNode root) { List<List<Integer>> res = new ArrayList<List<Integer>>(); Queue<TreeNode

2020-12-31 12:04:36 92

原创 leetcode刷题 二叉树的前中后序遍历

采用递归的方法,其中要理解何时进行添加root这一步操作在递归中很重要TreeNode数据结构代码public class TreeNode { int val; TreeNode left; TreeNode right; TreeNode() {} TreeNode(int val) { this.val = val; } TreeNode(int val, TreeNode left, TreeNode right) { thi

2020-12-30 15:20:22 88

原创 leetcode刷题 设计循环队列

最重要的收获,循环问题,模运算是一个很好的办法class MyCircularQueue { int head; int tail; int[] queue; public MyCircularQueue(int k) { queue = new int[k]; head = -1; tail = -1; } public boolean enQueue(int value) { if(isFull())

2020-12-29 21:52:21 83

原创 java多并发复习

参考资料:1.《疯狂java讲义》。概念讲的很清楚。2.廖雪峰java教程,链接。代码实现简介。3.郭永峰java教程:链接。有配套视频和ppt,举例较为接地气。4.多线程面试知识点总结:链接。复习完之后可以对照着看自己是否掌握。5.多线程刷题:链接。...

2020-12-29 09:16:54 123

原创 leetcode刷题 移动零

这道题的难点就在于不构建新的存储空间,直接原地进行移动,因此想到了采用双指针方法,其中一个指针总是指向0,一个指针总是指向非0,然后交换他们的位置。class Solution { public void moveZeroes(int[] nums) { if(nums.length==0) { return; } int zeroPointer = 0,noZeroPointer = 0; while(zeroPointer < nu

2020-12-28 12:24:38 82

原创 leetcode刷题 反转字符串中的单词3

这道题很关键的一点是,java的String类是不可修改的,因此要么使用Stringbuffer,要么就只有老老实实开辟额外内存空间,我这个代码比较睿智,但是思路还是清晰的。class Solution { public String reverseWords(String s) { String res = ""; if(s.length()==0) { return res; } List<String> list = new

2020-12-28 10:54:43 61 1

原创 leetcode刷题 杨辉三角2

这一次的问题我本来以为照抄上一次的内容就能做出来,然后发现对上一版的改动还挺大的。主要就是递归的使用,以及递归代码出现的位置。class Solution { public List<Integer> getRow(int rowIndex) { List<Integer> resList = new ArrayList<Integer>(); List<Integer> beforeList = new ArrayList&

2020-12-27 17:18:27 90

原创 leetcode 刷题 杨辉三角

纯粹是自己写的嗷,发现了一个规律,第i行,除了首尾为1,其他各个位,假设其下标为i,则一定是由上一行下标为i-1,i的元素嘉和得到,根据此观察编写程序。class Solution { public List<List<Integer>> generate(int numRows) { List<Integer> innerList = new ArrayList<Integer>(); List<List<In

2020-12-26 22:13:10 63

原创 leetcode 刷题 长度最小的子数组

这一周忙着做数据库安全的期末小项目,所以一直没有刷leetcode心里还是挺不安的。说实话,刷leetcode对于我的提高我感觉到了,之前写java感觉逻辑性很差,照着算法流程图的复现能力也不行,现在慢慢提高了。以下是今天刷题的内容,我之前自己想的那个暴力破解,leetcode说我超时了,其实那个方法也是可以完成的。class Solution { public int minSubArrayLen(int s, int[] nums) { int res = 0; if(nums

2020-12-25 20:38:36 83

原创 达梦数据库 实验任务

创建数据库用户创建表空间和用户

2020-12-20 21:37:37 113

原创 leetcode刷题 最大连续1的个数

这道题本来很简单的,被我自己想复杂了好多。最近因为复习和另外的实验,停止了好久刷题,要继续努力,把差的两天的题后续补上class Solution { public int findMaxConsecutiveOnes(int[] nums) { int res = 0; if(nums.length==0) { return res; } int count = 0; int maxCount = 0; for(int

2020-12-19 22:06:57 81 1

原创 leetcode刷题 移除元素

本次收获:1.在草稿纸上进行算法推演是很有必要的 2.掌握快慢指针思想本次的代码参照了算法动画图解:算法动画class Solution { //在草稿纸上面演算很有必要 public int removeElement(int[] nums, int val) { if(nums.length==0) { return 0; } //快慢指针思想 int fast = 0,slow = 0; for(fast = 0; fast < nums.lengt

2020-12-16 09:52:34 53

原创 leetcode刷题 两数之和 II - 输入有序数组

秒杀了这道题加油class Solution { public int[] twoSum(int[] numbers, int target) { if(numbers.length == 0) { return null; } if(numbers.length==1&&numbers[0]==target) { return new int[]{0,0}; } for(int i = 0; i < numbers.length;i+

2020-12-15 19:39:28 54

原创 在virtualbox中配置macos

参考以下配置链接:参考1,参考2安装黑苹果的大本营:黑苹果大本营倒腾了一个下午,没有找到可以用的mac os镜像,TMD,等着了

2020-12-14 16:33:23 177

原创 leetcode刷题 数组拆分1

这道题,虽然放在双指针章节里面,但是和双指针可以说毫无关系。不过收获还是挺多1.不能只想着穷举,要从数学的角度去思考最值问题,往往事半功倍2.对于基础的数据结构知识掌握还是很不够因此建立一个repository开始每天复习一下基础的数据结构算法class Solution { public int arrayPairSum(int[] nums) { //求和的最大值-》考虑其中每一个元素都大-》两两间差尽量小-》排序 Arrays.sort(nums);

2020-12-14 10:30:49 97

原创 leetcode刷题 翻转字符串

????AC最快的一道题,不超过5min,飘了飘了class Solution { public void reverseString(char[] s) { int left = 0 , right = s.length - 1; char temp = ' '; while(left < right) { temp = s[left]; s[left] = s[right]; s[right] = temp;

2020-12-13 09:52:35 34

原创 leetcde刷题 实现strStr

前两天用双指针用多了,直接就来双指针,结果调试一堆bug,还是String原生的api香啊要注意这种范围型的字符串问题,采用滑动窗口的方法,直接调用subString和equal来解题附上了自己的天坑双指针,调试了好久都有错,心态崩了class Solution { public int strStr(String haystack, String needle) { //滑动窗口方法 int res = -1; if(needle.equals(""))

2020-12-12 10:28:00 55

原创 leetcode刷题 翻转字符串里的单词

class Solution { /** * 没啥追求只求通过555,看了看题解 我是废物,不过练了练手,双指针更加熟悉了 * @param s * @return */ public String reverseWords(String s) { s = s.trim();//先去掉首尾空白 String res = ""; List<String> list = new ArrayList<String>(); int i = 0.

2020-12-11 21:27:18 102

空空如也

空空如也

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

TA关注的人

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