摘要: # java 和 C++的容器类的对比 ## 1 相似功能的容器 C++和Java都有丰富的容器库,虽然它们在使用和实现细节上有所不同,但许多容器都有类似的功能和性能特性。以下是C++和Java容器的对比: 1. `std::vector` (C++) `ArrayList` (Java) - 都是 阅读全文
posted @ 2023-05-21 11:34 编程爱好者-java 阅读(81) 评论(0) 推荐(0) 编辑
摘要: ## BFS 简单一点 ```java Qeueu que = new LinkedList(); while (!que.isEmpty()) { int size = que.size(); for(int i = 0; i < size; i++) { T cur = que.poll(); 阅读全文
posted @ 2023-05-21 10:08 编程爱好者-java 阅读(6) 评论(0) 推荐(0) 编辑
摘要: 九章算法给出的窗口类指针移动模板 总结: 使用九章的模板求解,枚举所有子串或者子数组的问题,可以考虑使用滑动窗口,并且使用两个指针来解决。 ```java j = 0; for (i = 0; i < n; i++) while (j < n) { if (满足条件) j++; 更新j状态 else 阅读全文
posted @ 2023-05-21 10:08 编程爱好者-java 阅读(15) 评论(0) 推荐(0) 编辑
摘要: ## Heap的知识 - Heap 的操作 - 从数组创建heap:使用siftDown. O(n) - 调整heap: siftUp, siftDown (heapify) 两种, O(log n) 【可以使用递归 和 循环两种写法】 - 一般是添加一个元素,在末尾: 使用siftUp - 去掉堆 阅读全文
posted @ 2023-05-21 10:07 编程爱好者-java 阅读(9) 评论(0) 推荐(0) 编辑
摘要: java中使用Stack类: (判断空: stack.empty() 跟 queue.isEmpty()不一样,要注意) ```java Stack stack = new Stack(); stack.push(x); while (!stack.empty()) { T cur = stack. 阅读全文
posted @ 2023-05-21 10:07 编程爱好者-java 阅读(21) 评论(0) 推荐(0) 编辑
摘要: ## 常见问题 - 找链表中间节点 - 反转链表 - 快慢指针(找环入口,判断环存在,找中间节点) - 非常好的题目 - 归并排序,判断链表是否是Palindrome ### 找链表中间节点 #### v1. 奇数返回正中间,偶数返回right ![](https://img2023.cnblogs 阅读全文
posted @ 2023-05-21 10:03 编程爱好者-java 阅读(4) 评论(0) 推荐(0) 编辑
摘要: ## 套路 细分为同向双指针和反向双指针两种。 ### 同向双指针模板 ```java Initialize two pointers i and j, usually both equal to 0 while j = 0; i--) { right[i] = Math.max(right[i+1 阅读全文
posted @ 2023-05-21 10:02 编程爱好者-java 阅读(15) 评论(0) 推荐(0) 编辑
摘要: ## 理论 - 每次划分完,一定是要缩小解空间的(这样就不会造成死循环) - 需要注意:循环条件的写法 (start > 1); - java中可以这么写: mid = (start + end) >>> 1; - 为了可读性好: `mid = start + (end - start)/2`; # 阅读全文
posted @ 2023-05-21 09:15 编程爱好者-java 阅读(10) 评论(0) 推荐(0) 编辑