周一,还好,只有一节课,上午的算法,要交作业,下周是我们组汇报了,不过有人已经把群给建起来了,过几天把活干了就行了。
想着昨天睡的不好,回来大家也都躺着,躺到了3点多起来干活。
下午刷题:
一道简单题
14.最长公共前缀
应该还好,能写出来,就是速度不行,后续优化了下
两道中等
394. 字符串解码
给定一个经过编码的字符串,返回它解码后的字符串。
示例 1:
输入:s = "3[a]2[bc]"
输出:"aaabcbc"
示例 2:
输入:s = "3[a2[c]]"
输出:"accaccacc"
int n=s.size();
stack<char> ch;
stack<int> num;
int i=0;
while(i<n)
{
char c=s[i];
if(isdigit(c))
{
int m=0;
while(isdigit(s[i]))//放入数字,考虑到数字不一定是个位数
{
int a=s[i]-'0';
m=m*10+a;
i++;
}
num.push(m);
}
else
{
if(c!=']')//字母放入
{
ch.push(c);
i++;
}
else
{
string s="";
char x=ch.top();
while(x!='[')//取出[]里面的内容
{
s=s+x;
ch.pop();
x=ch.top();
}
ch.pop();
int c=num.top();
num.pop();
reverse(s.begin(),s.end());
string s1="";
for(int j=0;j<c;j++)//排查一下发现是数字没有放进去
{
s1=s1+s;
}
for(int j=0;j<s1.size();j++)
{
ch.push(s1[j]);
}
i++;
}
}
}
string s2="";
while(!ch.empty())
{
char a=ch.top();
ch.pop();
s2=s2+a;
}
reverse(s2.begin(),s2.end());
return s2;
写的有点繁琐,但原理是这么个原理,还是后续优化的问题
不过中等题自己独立写出来的能过就觉得不错了,后续在多写一点,应该能改好的优化了
347. 前 K 个高频元素
给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素。你可以按 任意顺序 返回答案。
我用的哈希表做的,确实能过,还是速度的问题,但是空间确实也是很低,打败了97%
官方题解给的堆的解法,也整不明白,
提单里面给他放到的是《求前 K 个高频元素》,也不知道是什么意思,不如直接说是堆的训练,不知道后面还有没有堆的训练了,总的大章是放在栈的,可能有关系把,不过还是先往后面放放吧。
总的来说,今天3道题都能独立写出来,虽然不是最优解,不过确实比昨天要舒服了。
还是每天写个1简单2中等差不多,一道困难感觉写不出来,而且看题解都要花好多时间。
晚上依旧是数据库,今天看的是事务,也是基础篇的最后一节了,后面就是进阶篇了。
start transaction ;
#查询张三的余额
select account.money from account where name='张三';
#将张三余额-1000
update account set money=money-1000 where name='张三';
#将李四余额+1000
update account set money=money+1000 where name='李四';
commit ;
rollback ;
然后就去调了下服务器。话说买错了,应该买华东的,买成华中了,感觉用着有点卡手,不知道是软件的问题还是延迟问题,
不过也是用来练手和学习,才38一年,也没什么好说的了。
设置了下finalshell的壁纸,装了下相关软件和重置了数据库的密码,后面应该就能用了。
2025-11-10 215647.png








网友评论