大二第三周总结(算法+生活)

算法:

题目:有效的括号

这个题目也是做过很多回了。主要就是数据结构中"栈"的应用,先进后出。

解题思路:

1.创建 Map 哈希表形成键值对映射

2.进行遍历字符串

在遍历过程中

如果 遍历到的字符c 是左括号,则入栈 push;否则通过哈希表判断括号对应关系,若 stack 栈顶出栈括号 stack.pop() 与当前遍历括号 c 不对应,则提前返回 false。

复制代码
class Solution {
    public boolean isValid(String s) {
   		//创建一个栈
		Stack<Character>stack=new Stack<>();
		//创建一个哈希表,形成键值对的映射
		Map<Character,Character>map=new HashMap<>();
		map.put('(', ')');
		map.put('[', ']');
		map.put('{', '}');
		for(int i=0;i<s.length();i++) {
			char ch=s.charAt(i);
			if(ch=='('||ch=='['||ch=='{') {
				//入栈
				stack.push(ch);
			}else {
				//如果栈不为空,将栈顶元素弹出做对比
				if(!stack.empty()) {
					char top=stack.pop();
					//如果对应关系不正确,则将会提前返回false;
					if(ch!=map.get(top)) {
						return false;
					}
				}else {
					if(stack.empty()) {
						return false;
					}
				}
		
			}
		}
		if(!stack.empty()){
			return false;
		}
			return true;
			

    }
}

复杂度分析:

时间复杂度O(n) : 正确的括号组合需要遍历1遍 s;

空间复杂度 O(N): 哈希表和栈使用线性的空间大小 。

这个题也是做了很多遍了,单领出来写的时候,还是存在一些问题,自己在学算法的时候还是没有整理好自己的思路,好像在追求数量,而不是质量,更重要的还是要每天坚持练习算法。

规划:

下周肯定要好好练习算法,vue还没学多少,项目接口也慢慢出来了......

插曲:

我们的项目的话每个人都在努力赶进度,但就是输出很少。昨天晚上的心情 low to the bottom ,下周加油吧~

我组的小孩儿有的学的也慢了点儿,但是,很多人都是刚开始学编程,基础挺扎实挺重要的,没关系的,只要愿意学,去赶进度,厚积薄发,也是棒棒哒!

天越黑,星星越亮,也许现在感觉路很难走,可是,坚持走下去,请相信,天会亮的。

首先你要开心,其次,都是其次。希望我组的小孩儿们也能开开心心的学习

相关推荐
风吹乱了我的头发~1 小时前
Day52:2026年3月20日打卡
算法
2401_831824966 小时前
基于C++的区块链实现
开发语言·c++·算法
We་ct6 小时前
LeetCode 918. 环形子数组的最大和:两种解法详解
前端·数据结构·算法·leetcode·typescript·动态规划·取反
愣头不青6 小时前
238.除了自身以外数组的乘积
数据结构·算法
人工智能AI酱6 小时前
【AI深究】逻辑回归(Logistic Regression)全网最详细全流程详解与案例(附大量Python代码演示)| 数学原理、案例流程、代码演示及结果解读 | 决策边界、正则化、优缺点及工程建议
人工智能·python·算法·机器学习·ai·逻辑回归·正则化
WangLanguager6 小时前
逻辑回归(Logistic Regression)的详细介绍及Python代码示例
python·算法·逻辑回归
m0_518019486 小时前
C++与机器学习框架
开发语言·c++·算法
一段佳话^cyx6 小时前
详解逻辑回归(Logistic Regression):原理、推导、实现与实战
大数据·算法·机器学习·逻辑回归
qq_417695056 小时前
C++中的代理模式高级应用
开发语言·c++·算法
xiaoye-duck7 小时前
《算法题讲解指南:动态规划算法--路径问题》--5.不同路径,6.不同路径II
c++·算法·动态规划