- 博客(28)
- 收藏
- 关注
原创 2021.07.19
git 命令本地仓库命令:git commit:提交git branch <name>:建立分支git rebase <name>:合并到另一个分支的下面git merge<name>:合并分支成为新的分支git checkout <name>:切换分支git checkout c1 or c2 or c3:变更HEAD指向git checkout <name>^ HEAD:HEAD上移一个分支git checkout HEAD~
2021-07-20 09:38:37
152
原创 2021.07.18
动态规划设计之最长递增子序列题目注意注意「子序列」和「子串」这两个名词的区别,子串一定是连续的,而子序列不一定是连续的。下面先来设计动态规划算法解决这个问题。思路我们先假设这个结论在 k<n 时成立,然后根据这个假设,想办法推导证明出 k=n 的时候此结论也成立。可以假设 dp[0…i-1] 都已经被算出来了,然后问自己:怎么通过这些结果算出 dp[i]?定义:dp[i] 表示以 nums[i] 这个数结尾的最长递增子序列的长度。如:最终结果(子序列的最大长度)应该是 dp 数
2021-07-19 07:18:03
208
原创 2021.06.28
二分查找的应用例题一代码// 寻找左侧边界的二分查找int shipWithinDays(int[] weights, int D) { // 载重可能的最小值 int left = getMax(weights); // 载重可能的最大值 + 1 int right = getSum(weights) + 1; while (left < right) { int mid = left + (right - left) / 2;
2021-06-28 21:35:52
180
原创 2021.06.27
单调队列单调队列概念:队列中的元素全都是单调递增(或递减)的。算法框架class MonotonicQueue { // 双链表,支持头部和尾部增删元素 private LinkedList<Integer> q = new LinkedList<>(); // 在队尾添加元素 n public void push(int n) { // 将前面小于自己的元素都删除 while (!q.isEmpty() && q
2021-06-27 23:05:46
132
原创 2021.06.26
一道LinkedHashMap<>题目class Person { public String name; @Override public boolean equals(Object o) { Person person = (Person) o; return name.equals(person.name); }
2021-06-26 19:13:22
121
原创 2021.06.24
单调栈框架:vector<int> nextGreaterElement(vector<int>& nums) { vector<int> res(nums.size()); // 存放答案的数组 stack<int> s; // 倒着往栈里放 for (int i = nums.size() - 1; i >= 0; i--) { // 判定个子高矮 while (!s.emp
2021-06-25 09:04:12
120
原创 2021.06.23
设计推特面向对象设计整体框架class Twitter { private static int timestamp = 0; private static class Tweet {} private static class User {} /* 还有那几个 API 方法 */ public void postTweet(int userId, int tweetId) {} public List<Integer> getNewsFe
2021-06-23 21:10:56
135
原创 2021.06.22
最大栈设计要求:我们仔细思考一下 push 和 pop 方法,难点如下:1、每次 pop 时,必须要知道频率最高的元素是什么。2、如果频率最高的元素有多个,还得知道哪个是最近 push 进来的元素是哪个。做法:为了实现上述难点,我们要做到以下几点:1、肯定要有一个变量 maxFreq 记录当前栈中最高的频率是多少。2、我们得知道一个频率 freq 对应的元素有哪些,且这些元素要有时间顺序。3、随着 pop 的调用,每个 val 对应的频率会变化,所以还得维持一个映射记录每个 val 对应的
2021-06-23 10:28:52
97
原创 2021.06.20
LFU算法LFU算法逻辑:1、调用get(key)方法时,要返回该key对应的val。2、只要用get或者put方法访问一次某个key,该key的freq就要加一。3、如果在容量满了的时候进行插入,则需要将freq最小的key删除,如果最小的freq对应多个key,则删除其中最旧的那一个。我们希望能够在 O(1) 的时间内解决这些需求,可以使用基本数据结构来逐个击破:1、使用一个HashMap存储key到val的映射,就可以快速计算get(key)。HashMap<Integer, In
2021-06-20 22:05:01
123
原创 2021.06.15
括号生成–力扣方法:回溯回溯算法框架:result = []def backtrack(路径, 选择列表): if 满足结束条件: result.add(路径) return for 选择 in 选择列表: 做选择 backtrack(路径, 选择列表) 撤销选择核心回溯算法代码public void core(StringBuilder sb, List<String> re
2021-06-15 19:48:59
2309
1
原创 2021.06.14
队列实现栈|栈实现队列队列实现栈当调用push()时,将元素压入s1中。当pop()时,将s2中的元素弹出,如果s2中没有元素,就从s1一个个弹出并拿到。如果s1中也没有,则代表队列尾空。栈实现队列每当元素需要pop()时,都需要将之前的元素弹出并放在另一个栈中,待最后一个元素弹出后,将元素重新压回栈。二叉堆详解实现优先级队列注意:对数组中的元素进行操作,相关的索引概念,索引0为空// 父节点的索引int parent(int root) { return root / 2;
2021-06-15 08:49:57
104
原创 2021.6.11
访问修饰符public,private,protected,以及不写时的区别?答:返回顶部 Java面向对象四种基本特性答:Java面向对象四种基本特性:抽象、封装、继承、多态,可以这么理解,多态体现在抽象、封装以及继承上,而抽象、继承、封装体现在Java中的多态特性中. 也可以这么理解:多态是抽象、封装、继承的体现,抽象、封装、继承是多态的基础. Java中的多态就是对同一类消做出不同响应就叫做多态,Java中23中设计模式很大一部分就就是利用Java中多态来完成的. 其目的就是为
2021-06-11 22:05:55
129
原创 2021.6.10
O(1)的时间,删除/查找数组中的任意元素:避开黑名单的随机数给你输入一个正整数 N,代表左闭右开区间 [0,N),再给你输入一个数组 blacklist,其中包含一些「黑名单数字」,且 blacklist 中的数字都是区间 [0,N) 中的数字。现在要求你设计如下数据结构:class Solution {public: // 构造函数,输入参数 Solution(int N, vector<int>& blacklist) {} // 在区间
2021-06-10 21:17:54
144
原创 2021.06.09
O(1) 时间,查找/删除数组中的任意元素如果用数组存储元素的话,插入,删除的时间复杂度怎么可能是 O(1) 呢?可以做到!对数组尾部进行插入和删除操作不会涉及数据搬移,时间复杂度是 O(1)。所以,如果我们想在 O(1) 的时间删除数组中的某一个元素val,可以先把这个元素交换到数组的尾部,然后再pop掉。交换两个元素必须通过索引进行交换对吧,那么我们需要一个哈希表valToIndex来记录每个元素值对应的索引。class RandomizedSet {public: // 存储元素的
2021-06-09 22:11:49
98
原创 2021.6.8
问:接口和抽象类的区别?答:接口:1.接口使用interface来定义2.Java中,接口和类是并列的两个结构3.接口中的成员JDK7及以前:只能定义全局常量和抽象方法>全局常量:public static final的.但是书写时,可以省略不写>抽象方法:public abstract的 JDK8:除了定义全局常量和抽象方法之外,还可以定义静态方法、默认方法(略)(可以由实现类的对象直接调用(注意遵守类优先原则和解决接口冲突问题))(为了解决接口中增加一个抽象方法,实现类必须
2021-06-08 08:53:43
125
原创 Java基础面试题
Java基础面试题问:接口和抽象类的区别?问:重载和重写的区别问:sleep() 的 wait()区别问:Synchronized 和 lock 的区别问:属性赋值的先后顺序问:异常的体系结构问:线程的生命周期问:String s = new String("abc");方式创建对象,在内存中创建了几个对象?问:StringBuffer与StringBuilder的内存解析问:接口和抽象类的区别?答:接口:1.接口使用interface来定义2.Java中,接口和类是并列的两个结构3.接口中的成
2021-06-03 21:58:35
1186
原创 笔试算法框架
算法框架动态规划框架回溯算法框架二分查找框架小结滑动窗口框架动态规划框架求解动态规划的核心问题是穷举存在「重叠子问题」具备「最优子结构」明确 base case -> 明确「状态」-> 明确「选择」 -> 定义 dp 数组/函数的含义# 初始化 base casedp[0][0][...] = base# 进行状态转移for 状态1 in 状态1的所有取值: for 状态2 in 状态2的所有取值: for ... dp
2021-05-26 09:28:53
552
原创 算法笔记2
算法笔记1.链表总结1.链表递归法92. 反转链表 II问题:问题细分:1)递归反转整个链表ListNode reverse(ListNode head) { if (head.next == null) return head; ListNode last = reverse(head.next); head.next.next = head; head.next = null; return last;}根据递归的定义,清除代码会产生什么样的
2021-05-16 15:43:23
264
原创 线程相关问答题
多线程相关问:讲一下进程、线程、协程问:讲一下进程、线程、协程答:打个比方:有一个老板想要开一个工厂进行生产某件商品(例如电视机),他需要花一些财力物力制作一条生产线,这个生产线上有很多的器件以及材料。这些所有的为了能够生产电视机而准备的资源称为 :进程只有生产线是不能够进行生产的,所以老板找个工人来进行生产,这个工人能够利用这些材料最终一步步的将剪子做出来,这个来做事情的工人称为:线程这个老板为了提高生产率,想到3种办法:在这条生产线上多招些工人,一起来做电视机,这样的效率是成倍增长的,即单进
2021-05-09 20:29:24
230
原创 Web相关问答题
Web相关问答题get、post的区别和使用场景?get、post的区别和使用场景?答:1.get请求会以明文的方式将数据显示在URL之后(HTTP请求行)(以?来分隔URL和数据,以&来分隔参数,数字和英文原样发送,中文或其他字符进行BASE64编码),安全性低;post请求是可以加密数据的,数据存于HTTP请求数据中,安全性高。2.get提交的数据比较少,有容量的限制;而post理论上来说没有容量的限制。3.get请求用于查询数据;post用于修改数据,例如,处理订货表单、在数据库中加
2021-05-09 20:23:06
190
原创 org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document fro
错误问题org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from ServletContext resource [/WEB-INF/dispatcherServlet-servlet.xml]; nested exception is java.io.FileNotFoundException: Could not open ServletContext re
2020-06-11 22:53:33
285
原创 java.lang.AbstractMethodError: Method com/mchange/v2/c3p0/impl/NewProxyResultSet.isClosed()Z is abst
ssm整合项目学习的时候出现了以下错误java.lang.AbstractMethodError: Method com/mchange/v2/c3p0/impl/NewProxyResultSet.isClosed()Z is abstract at com.mchange.v2.c3p0.impl.NewProxyResultSet.isClosed(NewProxyResultSet.java) at org.apache.ibatis.executor.resultset.DefaultR
2020-06-11 21:51:31
781
原创 IDEA中,给web添加文件夹在映射的文件中未显示时
IDEA中,给web添加文件夹在映射的文件中未显示时Build – Build Artifacts – All Artifacts – clean再次点击 Build – Build Artifacts – All Artifacts
2020-05-31 17:31:29
225
原创 javaweb中有关类加载器的空指针问题
今天在练习动态web项目的时候发现老是出现空指针的问题,最后找到了是由于类加载器读取配制文件的问题。软件用的是IDEA2.菜单栏中找到“File”找到 Project Structure3.点击“+”,再点 Import Module4.找到相应的文件目录后出现这个界面,选中第一个。之后一直Next操作...
2020-02-03 17:18:38
946
转载 idea错误:找不到或无法加载主类
idea 错误: 找不到或无法加载主类(汇总贴)idea 错误: 找不到或无法加载主类 xxx.xxx.xxxxxJDK环境,maven项目还是ee还是web项目,是否都正常。如果是用idea打开的话,在源码目录上点击右键,然后找到Mark directory as->source root看这篇:(真的是主类没找到)http://www.cnblogs.com/mrray1105...
2020-01-30 16:33:23
390
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人