4.7力扣刷题记录

文章目录

      • 1.旋转字符串--KMP
      • 2.二叉树前中后遍历的迭代写法

1.旋转字符串–KMP

在这里插入图片描述
题目地址
KMP字符串匹配算法,找出 p 0 . . . p j − 1 p_0...p_{j-1} p0...pj1中前缀子串和后缀子串相同的最大值。
KMP算法,包括改进后的next数组
在这里插入图片描述
代码如下

class Solution {
public:bool rotateString(string s, string goal) {if(s.size()!=goal.size())return false;vector<int> next(goal.size());getnext(next,goal);string str=s+s;int pos=0;for (int i = 0; i < str.size(); ) {//匹配while(i<str.size()&&pos<goal.size()&&str[i]==goal[pos]){pos++;i++;}if(pos==0)i++;else if(pos==goal.size())return true;elsepos=next[pos];}return false;}void getnext(vector<int> next,string s){//next数组next[0]=-1;int k=-1;for(int i=1;i<s.size();){if(k==-1||s[i]==s[k]){k++;next[i]=k;i++;}else{k=next[k];}}}
};

2.二叉树前中后遍历的迭代写法

前序遍历

//前序遍历
class Solution {
public:vector<int> preorderTraversal(TreeNode* root) {vector<int> ans;if(root==NULL)return ans;stack<TreeNode* > s;s.push(root);while(!s.empty()){auto temp=s.top();s.pop();ans.push_back(temp->val);if(temp->right!=NULL)s.push(temp->right);if(temp->left!=NULL)s.push(temp->left);}return ans;}
};

中序遍历

//中序遍历
class Solution {
public:vector<int> inorderTraversal(TreeNode* root) {if(root==nullptr)return {};vector<int> ans;stack<TreeNode* > s;while(!s.empty()||root!=nullptr){while(root!=nullptr){s.push(root);root=root->left;}root = s.top();s.pop();ans.push_back(root->val);root=root->right;}return ans;}
};

后序遍历

//后序遍历
class Solution {
public:vector<int> postorderTraversal(TreeNode* root) {if(root==nullptr)return {};vector<int> ans;stack<TreeNode* > s;TreeNode* cur = nullptr;while(!s.empty()||root!=nullptr){while(root!=nullptr){s.push(root);root=root->left;}root=s.top();if(root->right==nullptr||root->right==cur){cur=root;ans.push_back(root->val);root=nullptr;s.pop();}else{root=root->right;}}return ans;}
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/59684.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

力扣刷题插件

点击蓝色“力扣加加”关注我哟 加个“星标”&#xff0c;带你揭开算法的神秘面纱&#xff01; ❝ 这是力扣加加第「14」篇原创文章 ❞ 之前我做了一个视频&#xff0c; 介绍我的刷题浏览器扩展插件&#xff0c;视频地址&#xff1a;https://www.bilibili.com/video/BV1UK4y1x7z…

golang力扣刷题(一)

title: golang力扣刷题&#xff08;一&#xff09; date: 2021-10-14 21:03:50 categories: go tags:基础 力扣刷题&#xff08;一&#xff09; 力扣刷题 全部题目模块&#xff08;1&#xff5e;30&#xff09; 简单 山峰数组 符合下列属性的数组 arr 称为 山峰数组&#…

力扣刷题(二)

title: golang力扣刷题&#xff08;二&#xff09; date: 2021-11-04 10:06:27 categories: go tags:基础 力扣刷题&#xff08;二&#xff09; 力扣刷题 全部题目模块&#xff08;30&#xff5e;60&#xff09; 简单 搜索插入位置 给定一个排序数组和一个目标值&#xff…

Visual Studio无法登录,提示“我们无法添加此账户”解决办法

问题如下&#xff1a; 解决办法&#xff1a; 1.点击菜单栏 “帮助” —— “注册Visual Studio” 2.点击 “账户选项” 3. 如图&#xff0c;选择 “系统 Web 浏览器”&#xff0c;点击 “确定” 4. 返回上一页&#xff0c;点击 “登录” 5.软件会自动跳转到浏览器进行登录验证…

oracle创建完用户无法登陆

create user test identified by test;之后cmd登陆报如下错误 user TEST lacks CREATE SESSION privilege; logon denied 右键用户编辑分配如下权限&#xff0c;问题解决

Windows创建新账户进行登录

前言&#xff1a; 先谈谈为什么我会写这篇文章&#xff0c;既是讲述历史&#xff0c;也是描述场景。如相似可进行相关操作&#xff0c;如不同还望谨慎考虑后操作。 由于工作需要&#xff0c;每天都要开电脑&#xff0c;关电脑。麻烦的是&#xff0c;此电脑上有两个账号且称为A、…

postgres创建用户无法登录

CREATE USER testUser WITH PASSWORD 123456 GRANT USAGE, SELECT ON ALL SEQUENCES IN SCHEMA public TO testUser 然后登录&#xff0c;结果验证失败&#xff0c;解决方案&#xff1a;testUser->testuser就可以了

王小川开怼李彦宏,国产AI大模型研发终于进入“骂街”阶段

经过一段时间的沉寂&#xff0c;因为ChatGPT的出现&#xff0c;国内互联网又恢复了往日的生机&#xff0c;连“激情互怼”的戏码也搬了出来。 在阔别舞台中心一年半后&#xff0c;搜狗前CEO王小川吹响了进军AI大模型的号角&#xff0c;成立百川智能&#xff0c;一口气接受了包括…

【AI新趋势期刊#2】AI发明计算机算法,如何给大模型排行,照片秒变二维码,视频一键动漫风

前言 每天都要浏览大量AI相关新闻&#xff0c;是不是感到信息量爆炸&#xff0c;有效信息少&#xff1f; 这么多新产品和新工具&#xff0c;到底哪些是真正是有价值的&#xff0c;哪些只是浮躁的一时热点&#xff1f; 想参与AI产品和工具的开发&#xff0c;从哪里能够获得大…

2022 年国产编程语言发展总结

近日&#xff0c;OSCHINA 和 Gitee 联合发布了《2022 中国开源开发者报告》。凹语言作者柴树杉在报告中对开源数据库领域进行了解读&#xff0c;以下为原文。 2022 年 8 月&#xff0c;知名的科技视频制作者何同学发布了一个爆款视频《我做了一个自己打字的键盘》。视频中有一个…

华南理工大学与思迈特软件成立【人工智能联合实验室】

3月14日&#xff0c;华南理工大学—广州思迈特软件【人工智能联合实验室】正式揭牌&#xff0c;探索人工智能技术和商业智能产品的融合。广州市科学技术局高新技术处、广州市科学技术局成果与区域创新处、天河区科技工业和信息化局科技发展科、华南理工大学科学技术研究院、华南…

openinstall是什么?看看ChatGPT怎么说

openinstall是什么&#xff1f;openinstall拥有怎样的产品价值和市场地位&#xff1f;今天我们对话“全球最先进的人工智能语言模型”——ChatGPT&#xff0c;通过该超前的聊天机器人更客观全面地了解openinstall。 ChatGPT到底是什么&#xff1f;这是由硅谷人工智能实验室Ope…

论文综述降重小窍门

众所周知&#xff0c;综述最需要解决的问题其实是降重的问题。 毕竟综述就是以引用文献为主&#xff0c;重复率之高&#xff0c;实则惨不忍睹。下面就来看看笔者琢磨出来的「降重神掌」。 SCI降重办法梳理&#xff1a; SCI论文降重是论文发布前必经的步骤&#xff0c;想要顺利…

H5接入微信公众号方法(超详细)

微信官方文档 一、使用真实公众号并认证开发者&#xff0c;或者申请使用测试号 注意&#xff1a; 在微信开发者工具中调试&#xff0c;必须先成为公众号开发者&#xff0c;可以在微信公众号后台进行配置 位置&#xff1a; 公众号后台 > 设置与开发 > 开发者工具 > w…

公众号H5页面接入微信登录流程

起步 首先创建一个项目&#xff0c;我们采用uni-app来作为我们的前端框架 环境安装 全局安装vue-cli npm install -g vue/cli 创建uni-app 使用正式版&#xff08;对应HBuilderX最新正式版&#xff09; vue create -p dcloudio/uni-preset-vue my-project 在安装过程中…

海报的5种处理方式,让你的照片更吸睛

你知道海报应该怎么处理吗&#xff1f;照片是一个作品里最能吸引人注意的&#xff0c;我们可以试一试将照片处理成海报。那么你知道海报式的图片应该怎么处理吗&#xff1f;一起来看看吧&#xff01; 方法一&#xff1a;图形元素强调 如果照片本身的视觉冲击力不强&#xff0c…

AI技术在智能海报设计中的应用

背景 在视觉设计领域中&#xff0c;设计师们往往会因为一些简单需求付出相当多的时间&#xff0c;比如修改文案内容&#xff0c;设计简单的海报版式&#xff0c;针对不同机型、展位的多尺寸拓展等。这些工作需要耗费大量的时间、人力成本&#xff08;5~6张/人日&#xff09;&am…

vue3 antd项目实战——table表格(一文带你快速实现后台管理系统最常用的table表格)

零基础filter实现最简单的table表格 知识调用核心干货下期预告关键字模糊查找&#xff08;纯前端&#xff09;关键字模糊查找&#xff08;前后交互&#xff09; 知识调用 功能实现可能要用到的知识&#xff1a;vue3ant design vuets实战【ant-design-vue组件库引入】vue3项目实…

tf.placeholder代码详解

tf.placeholder(dtype, shape, name) 作用&#xff1a;创建一个类型为dtype&#xff0c;形状为shape&#xff0c;名字为name的一个Tensor类型 返回值&#xff1a;一个tensor类型 注意&#xff1a;tf.placeholder生成的tensor并不能直接print&#xff0c;需要通过sess.run才…

人工智能之线性代数应用

线性代数 1. 从初等函数到高等数学 一元线性函数 在中学的初等数学里,把函数 f ( x ) = k x + b f(x)=kx+b f(x)=kx+b ( k , b k,b k,b是不变量),称为一元线性函数,因为在平面直角坐标系中这个函数的图形就是一条线,就是变量(包括自变量和因变量)之间的映射关系描述为…