- 博客(17)
- 收藏
- 关注
原创 C++ 求解逆波兰表达式
今天做一个C++题,求解逆波兰表达式,我把我自己坑惨了啊~是我C++底子不牢,用了switch,结果case里没用break,就每个case全操作了一遍,最后得出0……要用break或者continue啊!#include<bits/stdc++.h>using namespace std;int add(char s[]){ stack<int> num; stack<char> op; int i = 0; while(i
2022-03-12 14:50:59
543
原创 C++变量笔记
vector——向量,也就是动态数组函数:vector vec;——创建函数vec.push_back(i);——末尾加入,加入就只能这个函数vec.size()——获取长度vec[i]——像数组一样取元素,只能取不能放vec.begin()——返回向量头指针,指向第一个元素 vec.end()——返回向量尾指针,指向向量最后一个元素的下一个位置vector::iterator it = vec.begin()——生成迭代器(感觉像指针)cout<<*it;——输出迭.
2022-03-06 15:13:12
6926
原创 力扣131. 分割回文串
这一个题要设置两个全局变量(当然其实不设也是可以的),即List<List> res 和 List item。注意这里我用了List item就是不对的,必须用Deque item,不然就AC不了。AC代码如下:注释部分是源代码class Solution { List<List<String>> res =new ArrayList<>(); Deque<String> item = new LinkedList<>
2022-02-04 12:54:22
5544
原创 力扣450. 删除二叉搜索树中的节点
依旧是看了代码随想录,但是他的解法里的第五种情况,即左孩子和右孩子都不为空的处理我不太明白,也和之前数据结构学的不太一样。最后我还是用数据结构学的解法写了代码,并最终AC了,记录一下,有需要的同学可以看一下哈。解法:左孩子,右孩子都不为空,则将前驱或者后继的值(带代码里选择了后继,也就是右子树最左下的结点)覆盖当前结点的值,再删除相应的前驱或者后继。class Solution { public TreeNode deleteNode(TreeNode T, int val) {
2022-01-31 22:29:01
584
原创 力扣226.翻转二叉树(中序遍历)
代码随想录说,这个题如果用递归,前序后序遍历都可以,但是中序遍历很容易出错,我最开始一直没想出来,中序遍历为什么会出错呢?不就是左右孩子的位置换一下吗?直到我看了代码,就明白了。代码如下:class Solution { public TreeNode invertTree(TreeNode root) { if(root == null) return null; invertTree(root.left);//注意这里是left TreeNod
2022-01-25 16:42:14
992
原创 Java学习杂记
java是没有指针的!!!当new了,则对象名就是地址!!!所以在形参处传递对象名就是传递地址,也就是引用!!!而不new,比如直接Int,传递的就是数值!!!
2022-01-24 23:48:53
501
原创 力扣145. 二叉树的后序遍历(迭代法)
以前上数据结构课的时候,老师说用栈实现二叉树的后续遍历有点麻烦,分析了其中的逻辑没有写过代码。今天看代码随想录,用了巧妙的方法,觉得很惊喜,在此做一下笔记。后序遍历要得到的序列就是左右中,将此翻转就得到中右左,是不是和前序遍历有点像?前序遍历是中左右,所以只要在前序遍历的代码基础上,将左右的位置换一下,就能得到中右左的序列,然后再翻转就能得到后续遍历的序列,十分简单!下面列出前序遍历和后续遍历的代码,做一下比较。前序:class Solution { public List<Int
2022-01-24 11:58:44
5206
1
原创 力扣239. 滑动窗口最大值
这个题我做了好久,人都傻了。我自己写得也很混乱,你要是喷那就是你对。看之前先看一下代码随想录,看不懂再来看一下我的分析,链接:添加链接描述第一是MyQueue的pop和push函数没搞懂这个题目要保证在peek的时候取出的就是窗口中的最大数,那就要保证此时队列里的元素既是窗口里的元素,而且要保持递减。实现就在pop函数和push函数的实现里。push: 如果当前队列为空,则直接入队;否则判断队尾的元素是否比val大,如果大,则直接入队,否则队尾出队直到队尾比val大或者为空,然后再入队。这样就保证
2022-01-23 21:36:02
3004
原创 力扣459. 重复的子字符串
今天写了重复子字符串的题目,是在KMP算法的基础上改的,但是最后的逻辑我没有看懂,为什么(next[n - 1] != -1 && n % (n - (next[n - 1] + 1)) == 0)成立,就说明有重复的子字符串?欢迎大家讨论,也欢迎大佬解答。class Solution { public boolean repeatedSubstringPattern(String s) { int n = s.length(); if(n == 0
2022-01-21 23:44:12
123
原创 力扣151. 翻转字符串里的单词(Java)
主要是中间的注释部分我最开始没弄懂,将string里的每个字符添加到stringbuilder的条件是什么呢,为什么是sb.charAt(sb.length() - 1) != ’ '而不是sb.charAt(start- 1) != ’ '呢?因为start有可能是0,start - 1就会越界;而此时,sb只有已经填充了的一部分,所以若要加入空格只有一种情况,那就是sb的最后一位不是空格,所以用sb.charAt(sb.length() - 1) != ’ '是可以的。class Solution
2022-01-21 11:10:51
480
原创 Java一些变量的笔记
array——普通数组list——有序序列,可重复。主要有ArrayList和LinkedList两个类,底层实现不一样,一个是数组,一个是链表。map——键值对,不可重复。set——集合,不可重复。
2022-01-20 21:02:06
482
原创 四数之和的笔记
今天做了力扣三数之和、四数之和的题目,在此做一些笔记。下面是四数之和的代码class Solution { public List<List<Integer>> fourSum(int[] nums, int target) { List<List<Integer>> res = new ArrayList<>(); Arrays.sort(nums); for(int i = 0; i
2022-01-20 21:00:39
192
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人