《算法闯关指南:优选算法--模拟》--41.Z 字形变换,42.外观数列

《算法闯关指南:优选算法--模拟》--41.Z 字形变换,42.外观数列
在这里插入图片描述

🔥草莓熊Lotso:个人主页
❄️个人专栏: 《C++知识分享》《Linux 入门到实践:零基础也能懂》
✨生活是默默的坚持,毅力是永久的享受!


🎬 博主简介:

在这里插入图片描述

文章目录


前言:

聚焦算法题实战,系统讲解三大核心板块:优选算法:剖析动态规划、二分法等高效策略,学会寻找“最优解”。 递归与回溯:掌握问题分解与状态回退,攻克组合、排列等难题。 贪心算法:理解“局部最优”到“全局最优”的思路,解决区间调度等问题 内容以题带点,讲解思路与代码实现,帮助大家快速提升代码能力。

41. Z 字形变换

题目链接

6. Z 字形变换 - 力扣(LeetCode)

题目描述

在这里插入图片描述


题目示例

在这里插入图片描述

解法(模拟+找规律):

算法思路:

找规律,用 row 代替行数,row = 4 时画出的 N 字形如下:
0 2row - 2 4row - 4
1 2row - 3 2row - 1 4row - 5 4row - 3
2 2row-4 2row 4row - 6 4row - 2
3 2row + 1 4row - 1
不难发现,数据是以 2row - 2 为⼀个周期进行规律变换的。将所有数替换成用周期来表示的变量:
第一行的数是:0, 2row - 2, 4row - 4;
第二行的数是:1, (2row - 2) - 1, (2row - 2) + 1, (4row - 4) - 1, (4row - 4) + 1;
第三行的数是:2, (2row - 2) - 2, (2row - 2) + 2, (4row - 4) - 2, (4row - 4) + 2;
第四行的数是:3, (2row - 2) + 3, (4row - 4) + 3。
可以观察到,第一行、第四行为差为 2row - 2 的等差数列;第二行、第三行除了第⼀个数取值为行数,每组下标为(2n - 1, 2n)的数围绕(2row - 2)的倍数左右取值。
以此规律,我们可以写出迭代算法。

C++算法代码:

classSolution{public: string convert(string s,int numRows){if(numRows==1)return s; string ret;int d=2*numRows-2,n=s.size();//1.处理第一行for(int i=0;i<n;i+=d) ret+=s[i];//2.处理中间的几行for(int k=1;k<numRows-1;k++){for(int i=k,j=d-k;i<n||j<n;i+=d,j+=d){if(i<n) ret+=s[i];if(j<n) ret+=s[j];}}//3.处理最后一行for(int i=numRows-1;i<n;i+=d) ret+=s[i];return ret;}};

算法总结&&笔记展示:

笔记字有点丑,大家见谅:

在这里插入图片描述


在这里插入图片描述

42. 外观数列

题目链接

38. 外观数列 - 力扣(LeetCode)

题目描述:

在这里插入图片描述


题目示例:

在这里插入图片描述


在这里插入图片描述

解法(模拟):

算法思路:

所谓【外观数列】,其中只是依次统计字符串中连续且相同的字符的个数。依据题意,依次模拟即可。

C++算法代码:

classSolution{public: string countAndSay(int n){ string ret="1";for(int i=1;i<n;i++)// 解释 n - 1 次 ret 即可{ string tmp;for(int left=0,right=0,count=0;right<ret.size();){while(right<ret.size()&&ret[left]==ret[right]) right++; tmp+=to_string(right-left)+ret[left]; left=right;} ret=tmp;}return ret;}};

算法总结&&笔记展示:

笔记字有点丑,大家见谅:

在这里插入图片描述


在这里插入图片描述

结尾:

🍓 我是草莓熊 Lotso!若这篇技术干货帮你打通了学习中的卡点: 👀 【关注】跟我一起深耕技术领域,从基础到进阶,见证每一次成长 ❤️ 【点赞】让优质内容被更多人看见,让知识传递更有力量 ⭐ 【收藏】把核心知识点、实战技巧存好,需要时直接查、随时用 💬 【评论】分享你的经验或疑问(比如曾踩过的技术坑?),一起交流避坑 🗳️ 【投票】用你的选择助力社区内容方向,告诉大家哪个技术点最该重点拆解 技术之路难免有困惑,但同行的人会让前进更有方向~愿我们都能在自己专注的领域里,一步步靠近心中的技术目标! 

结语:本文精选了两道经典算法题进行解析: Z字形变换:通过模拟和找规律,将字符串按Z字形排列后逐行读取。核心思路是识别以2*numRows-2为周期的下标规律,分首行、中间行和末行处理。 外观数列:模拟统计连续相同字符的个数并生成新字符串。通过双指针计数,迭代n-1次得到结果。 笔记展示了手写解题思路和关键公式推导。

✨把这些内容吃透超牛的!放松下吧✨ʕ˘ᴥ˘ʔづきらど

Read more

ctfshow Web入门命令执行29-124全通关详解(看这一篇就够啦~)

文章目录 * 命令执行 * web29-web31:基础注入 * web29 * web30 * web31 * web32-web36:参数逃逸 * web32 * web33 * web34-36 * web37-web39:文件包含+伪协议命令执行 * web37 * web38 * web39 * web40:无参数RCE * web41:无字母RCE * web42-web53:绕过无回显RCE * web42 * web43 * web44 * web45 * web46 * web47-web49 * web50 * web51 * web52 * web52 * web53 * web54:关键词模糊匹配 * web55-web57:字符集受限 RCE * web55 * web56 * we

By Ne0inhk

nomic-embed-text-v2-moe实战教程:Streamlit替代Gradio构建嵌入服务前端

nomic-embed-text-v2-moe实战教程:Streamlit替代Gradio构建嵌入服务前端 1. 项目简介与背景 nomic-embed-text-v2-moe是一个强大的多语言文本嵌入模型,专门用于多语言检索任务。这个模型在多个关键指标上表现出色,相比同规模参数量的模型具有显著优势。 核心特点: * 高性能表现:与约3亿参数的模型相比,在多语言性能上达到先进水平,甚至能与参数规模两倍的模型竞争 * 多语言支持:支持约100种语言,经过超过16亿对文本的训练 * 灵活嵌入维度:采用Matryoshka嵌入训练技术,存储成本降低3倍的同时性能损失极小 * 完全开源:模型权重、训练代码和训练数据全部开放 技术规格对比: 模型参数量(M)嵌入维度BEIR评分MIRACL评分预训练数据微调数据代码Nomic Embed v230576852.8665.80mE5 Base27876848.8862.30mGTE Base30576851.1063.40Arctic Embed v2 Base30576855.4059.90BGE M3568102448

By Ne0inhk

从Actix-web到Salvo:一个Rust开发者的“效率觉醒“之路

从Actix-web到Salvo:一个Rust开发者的"效率觉醒"之路 作为一个写了三年Rust Web服务的开发者,我太懂那种"选框架比写业务还头疼"的感觉了。去年用Actix-web搭了个项目,代码写到一半差点把键盘砸了——明明想聚焦业务逻辑,却被路由、中间件、连接池这些"框架戏"占了80%时间。直到今年换成Salvo,才明白什么叫"开发本该有的样子"。 今天就用大白话聊聊这两个框架的区别,从我的"血泪史"到"真香现场",全是真实感受,没有术语轰炸,只有"人话"。 一、开发体验:从"搭迷宫"

By Ne0inhk
在线政务服务中心_nrlwabo信息管理系统源码-SpringBoot后端+Vue前端+MySQL【可直接运行】

在线政务服务中心_nrlwabo信息管理系统源码-SpringBoot后端+Vue前端+MySQL【可直接运行】

摘要 随着信息技术的快速发展,政府服务逐渐向数字化、智能化转型。在线政务服务中心作为政府与公众之间的重要桥梁,其高效、便捷的服务模式成为提升政府效能和公众满意度的关键。传统的政务服务模式存在流程繁琐、信息不透明、效率低下等问题,难以满足现代社会的需求。因此,构建一个功能完善、操作简便的在线政务服务中心信息管理系统具有重要意义。该系统能够实现政务服务的线上化、标准化和自动化,为公众提供一站式服务,同时为政府部门的决策提供数据支持。关键词:在线政务服务中心、数字化转型、政务服务、信息管理系统、公众满意度。 本系统采用SpringBoot作为后端框架,结合Vue.js前端框架和MySQL数据库,实现了高效、稳定的政务服务管理平台。SpringBoot提供了快速开发的能力,简化了配置和部署流程;Vue.js实现了响应式的前端界面,提升了用户体验;MySQL作为关系型数据库,确保了数据的安全性和可靠性。系统功能包括用户管理、业务办理、信息查询、数据统计等模块,支持多角色权限控制,满足不同用户的需求。通过该系统,公众可以线上提交申请、查询进度,政府部门可以实时处理业务、分析数据,从而提升整体服

By Ne0inhk