摘要: 1. 辅助栈 很多时候,在做栈、链表等等题目中,需要使用到辅助栈。比如 剑指 Offer 30. 包含min函数的栈 中,我们需要使用一个辅助栈,只把当前的最小值放在栈顶。经常使用到的函数有:pop出栈,push入栈,peek返回栈顶元素,size返回栈里元素个数。 剑指 Offer 06. 从尾到 阅读全文
posted @ 2022-01-02 23:11 Acc22222222 阅读(42) 评论(0) 推荐(0)
摘要: 分析:本题的难点主要就在于:random如何指向一个新的结点。 刚开始的想法就是遍历链表,然后每次生成一个新结点,把对应的属性赋值,然后问题就出现了:我们会发现,random对应的是一个指针,我们如果简单的使用 a.random = b.random 去给新结点进行赋值,就会出现多个指针指向同一个结 阅读全文
posted @ 2022-01-02 23:02 Acc22222222 阅读(28) 评论(0) 推荐(0)
摘要: 当做到一些操作链表的算法题时,可能需要定义一个辅助结点,目的是不直接操作题目给出的链表,但是辅助结点如何初始化就是个问题了。 比如 剑指 Offer 25. 合并两个排序的链表 中,我们需要定义一个辅助结点,我一般是这样定义的: ListNode startNode = null; ListNode 阅读全文
posted @ 2021-12-30 12:43 Acc22222222 阅读(86) 评论(0) 推荐(0)
摘要: 本文用于总结字符串相关题目的所用方法。 1. 哈希表 主要作用:统计字母出现个数。 当题目中出现与字母个数相关的题目时,我们可以选择哈希表。经常会用到 HashMap 中的 put与get函数,注意当key相同的时候,HashMap是可以更新value的。 有时对两个字符串进行比较时,我们可能会定义 阅读全文
posted @ 2021-12-24 21:26 Acc22222222 阅读(67) 评论(0) 推荐(0)
摘要: 如果直接开始for循环,遇到一个0就清空对应的行和列,那么最终会导致矩阵多出很多0(原本不是0的位置,遍历到的时候也被计为0) 第一种方法 可以使用辅助矩阵:遍历矩阵的过程中,遇到一个0,就把它对应的行和列记入辅助矩阵(boolean类型)中,遍历结束后,根据辅助矩阵的值来对原矩阵进行改造。这种思路 阅读全文
posted @ 2021-12-23 10:08 Acc22222222 阅读(78) 评论(0) 推荐(0)
摘要: 《程序员面试金典》的第七题 主要就是涉及矩阵的知识点:矩阵旋转90度。 第一种解法:辅助矩阵法 最简单的一种解法,主要思想就是用辅助矩阵记录元素旋转后的位置,但这样做的话,空间复杂度就为O(N^2) 注意一下对应位置,matrix[j][n-1-i]是旋转后的位置,因此需要在辅助矩阵的这个位置,输入 阅读全文
posted @ 2021-12-22 20:49 Acc22222222 阅读(96) 评论(0) 推荐(0)
摘要: 求数组最大值的方法: public static int process(int[] arr,int L, int R){ //L为左边界,R为右边界 if(L==R){ //只有一个数,直接返回 return arr[L]; } int mid = L + ((R-L)>>1); //求中点 in 阅读全文
posted @ 2021-12-08 09:26 Acc22222222 阅读(321) 评论(0) 推荐(0)
摘要: 在一些题目中,需要用到异或。比如:在一个数组中,有出现偶数次的数,还有出现奇数次的数(简单点,就一个,如果多个还需要补码的知识),如果需要求出来奇数次出现的那个数,正确的解法就是声明一个数,让他循环异或数组里的数,最后的结果就是出现奇数次的数。 for(int i=0;i<arr.length;i+ 阅读全文
posted @ 2021-12-06 18:17 Acc22222222 阅读(165) 评论(0) 推荐(0)
摘要: 1. 产生一个随机长度的数组,数组里都赋值成随机数。 public static int[] generateRandomArray(int maxSize,int maxValue){ int length = (int)((maxSize+1)*Math.random());//随机长度 int 阅读全文
posted @ 2021-12-06 14:55 Acc22222222 阅读(41) 评论(0) 推荐(0)
摘要: 首先我们需要用一个接口表明service层都有哪些操作: public interface InfoService { Ret add(Info info); //注册 Ret delete(String name,String password); //删除用户信息 Ret login(Strin 阅读全文
posted @ 2021-11-25 21:05 Acc22222222 阅读(429) 评论(0) 推荐(0)