【备战秋招】——算法题目训练和总结day4

【备战秋招】——算法题目训练和总结day4😎

  • 前言🙌
    • Fibonacci数列
      • 我的题解思路分享
      • 代码分享
    • 单词搜索
      • 我的题解思路分享
      • 代码分享
    • 杨辉三角
      • 我的题解思路分享
      • 代码分享
  • 总结撒花💞

追梦之旅,你我同行

   
😎博客昵称:博客小梦
😊最喜欢的座右铭:全神贯注的上吧!!!
😊作者简介:一名热爱C/C++,算法等技术、喜爱运动、热爱K歌、敢于追梦的小博主!

😘博主小留言:哈喽!😄各位CSDN的uu们,我是你的博客好友小梦,希望我的文章可以给您带来一定的帮助,话不多说,文章推上!欢迎大家在评论区唠嗑指正,觉得好的话别忘了一键三连哦!😘
在这里插入图片描述

前言🙌

    哈喽各位友友们😊,我今天又学到了很多有趣的知识现在迫不及待的想和大家分享一下!😘 都是精华内容,可不要错过哟!!!😍😍😍

Fibonacci数列

题目链接: Fibonacci数列

在这里插入图片描述
在这里插入图片描述

我的题解思路分享

算法思路:贪心。

  1. 首先是认真审题,结合示例理解。
  2. 可以利用三个变量,再用wile 循环进行移动求解出每一个Fib数。
  3. 利用贪心的思想,很容易想到,我们应该对一个数只进行++ 或者 - - 操作。因为既++ 又 - - ,会抵消从而浪费步数。因此我们找到 n 值 离它最近的 左、右两个Fib数即可。
  4. 取他们的差值的最小值即可。

代码分享

#include <iostream>
using namespace std;int main()
{int n;cin >> n;int a = 0, b = 1 ,c = 1;while(c < n){a = b;b = c;c = a + b;}cout << min(c - n, n - b);
}

单词搜索

题目链接: 单词搜索

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

我的题解思路分享

算法思路:深度优先遍历dfs

  1. 首先是认真审题,结合示例理解。
  2. 定义一个 vis 二维数组,记录dfs时,访问过的字符数组位置,从而避免重复访问已走过的位置。
  3. 定义dx和dy的数组,记录该位置的上下左右四个方向。根据题目可知,我们每次都是可以从该位置的上下左右进行搜索。
  4. dfs的设计:你给我一个需要搜索的数组,并告诉我开始搜索的位置,以及目标单词开始查找的pos下标位置。
  5. 当我们查找到单词的下标已经到达单词的最后一个下标位置时,说明我们已经找到了该单词,返回true。
  6. 每次先找到要单词字符串的起点(首字母),然后进行从该位置进行一次dfs,如果可以形成目标字符串,那么就返回true
  7. 如果不能,就进行回溯,恢复现场。然后再找到一个匹配字符的起点位置,继续进行dfs。
  8. 当两次for循环后,依旧没有返回true,那么就表明该字符串数组中,不能形成单词字符串。

代码分享

class Solution {
public:bool vis[101][101];//记录访问过的位置int dx[4] = {0,0,1,-1};//形成方向坐标int dy[4] = {1,-1,0,0};//形成方向坐标int row;int col;string target;bool dfs(vector<string>& board, int i , int j, int pos){//说明已经搜索出目标wordif(pos == target.size() - 1)return true;for(int k = 0; k < 4; k++){//形成坐标方位int x = dx[k] + i;int y = dy[k] + j;if(x >= 0 && x < row && y >= 0 && y < col  && !vis[x][y] && board[x][y] == target[pos + 1]){vis[x][y] = true;if(dfs(board,x,y,pos + 1)){//剪枝:搜索到了单词,就直接返回了return true;}//恢复现场vis[x][y] = false;}}//四个方位都没有路可走,说明搜索不了word。return false;}bool exist(vector<string>& board, string word) {target = word;row = board.size();col = board[0].size();for(int i = 0; i < row; i++){for(int j = 0; j < col; j++){if(board[i][j] == word[0]){vis[i][j] = true;if(dfs(board,i,j,0)){//剪枝:搜索到了单词,就直接返回了return true;}//恢复现场vis[i][j] = false;}}}//遍历完整个数组,还是没有返回true,说明该本次dfs单词搜索不成功return false;}
};

杨辉三角

题目链接: 杨辉三角

在这里插入图片描述
在这里插入图片描述

我的题解思路分享

算法思路:动态规划

  1. 首先是认真审题,结合示例理解。
  2. 题目阐述已经非常清楚了,根据题目意思我们就可以得出我们的动态转移方程。 dp[i][j] = dp[i - 1][j] + dp[i - 1][j - 1]
  3. 3.我们最好从[1,1]开始填表,而不是从[0,0]开始,这样可以节省很多边界条件的特判。比较容易控制代码,不容易出错。
  4. 由于这里要求格式化输出,因此我们用c语言的 printf 打印结果是比较方便的。

代码分享

#include <cstdio>
#include <iostream>
using namespace std;
int dp[31][31];int main()
{int n;cin >> n;dp[1][1] = 1;for(int i = 2; i <= n; i++){for(int j = 1; j <= i; j++){dp[i][j] = dp[i - 1][j] + dp[i - 1][j - 1];}}for(int i = 1; i <= n; i++){for(int j = 1; j <= i; j++){printf("%5d",dp[i][j]);}printf("\n");}return 0;
}

总结撒花💞

   本篇文章旨在分享的是题解知识。希望大家通过阅读此文有所收获
   😘如果我写的有什么不好之处,请在文章下方给出你宝贵的意见😊。如果觉得我写的好的话请点个赞赞和关注哦~😘😘😘

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

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

相关文章

迎接AI新时代:GPT-5的技术飞跃与未来展望

引言 随着人工智能技术的迅猛发展&#xff0c;大语言模型在过去几年取得了显著进步。OpenAI最新的声明表明&#xff0c;GPT-5将在一年半后发布&#xff0c;并将带来从高中生智力水平到博士生智力水平的飞跃。这一突破引起了科技界和公众的广泛关注。本文将从技术突破预测、智能…

ubuntu重装系统后,安装cuda,cudnn

一、 先安装驱动&#xff0c;如果驱动安装不成功&#xff0c;会影响桌面&#xff0c;再重装系统还来得及&#xff0c;尝试了很多方法&#xff0c;还是用系统安装最靠谱&#xff1a; 首先进入Ubuntu搜索栏目&#xff0c;找到软件更新器的一个图标&#xff0c;点开之后是这样的。…

开发个人Ollama-Chat--5 模型管理 (二)

开发个人Ollama-Chat–5 模型管理 (二) ChatGPT 这是该项目的最终效果&#xff0c;使用ollama的open-webui进行人与机器的对话功能&#xff0c;对话的后端服务则完全对接自己开发的Go项目。 如何实现呢&#xff1f;则通过这篇文章&#xff0c;一一给大家剖析后端的原理及功能…

mmaction2的GPU环境配置记录RTX3090,cuda12.2,ubuntu22.04版本

1、配置镜像源 最重要的一个步骤,先看下镜像源地址,如果镜像源有问题,所有的包安装都会有问题 镜像源地址获取地址:选择对应的ubuntu版本号,将里面的镜像源地址复制出来,更新到服务器 ubuntu | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirro…

牛客小白月赛98

骰子魔术 jackle 会拿出一枚骰子&#xff0c;骰子的表面分别写上了从 1∽5001\backsim 5001∽500 的数字&#xff0c;朋友会随便说一个 1∽5001\backsim 5001∽500 之间的点数&#xff0c;jackle 都能保证百分之百的掷出这个点数。 当然 jackle 有备而来&#xff0c;他准备了 …

LeetCode分发糖果(贪心思路分析)

题目描述 贪心思路 思路及解法 我们可以将「相邻的孩子中&#xff0c;评分高的孩子必须获得更多的糖果」这句话拆分为两个规则&#xff0c;分别处理。 左规则&#xff1a;当 ratings[i−1]<ratings[i] 时&#xff0c;i 号学生的糖果数量将比 i−1 号孩子的糖果数量多。 …

实现win10多用户同时远程连接登陆(详细实验步骤版)

目录 目的环境实验步骤&#xff08;在需要被远程的win10上&#xff09;1. 开启远程桌面服务2. 编辑组策略实现多用户登录3. 安装RDPWrap实现多用户同时登录 测试 目的 默认情况下&#xff0c;win10 专业版只支持本地或远程只能同时存在一个连接。windows server支持多连接。 比…

【unity笔记】十、Obi绳索插件使用

一. 创建绳索 1.1 新建蓝图 在Assets中右键选择创建->Obi->Rope Blueprint&#xff0c;其属性如图所示 1.2 Obi solver 在场景下创建一个obi solver对象&#xff0c;在该对象下再创建Obi Rope对象。 随后将蓝图拖到Obi Rope对象下的Obi Rope组件&#xff0c;即可看到…

MES系统与其他系统的集成:提升制造业智能化的关键路径

在当今高度竞争的制造业环境中&#xff0c;企业对于生产效率、质量控制、资源优化以及快速响应市场变化的需求日益迫切。制造执行系统&#xff08;MES&#xff09;作为连接企业计划层与车间控制层的重要桥梁&#xff0c;其在提升生产透明度和优化生产流程方面发挥着不可替代的作…

Java静态练习(1) (2024.7.11)

学生类 package StaticTest;public class Student {private String name;private int age;private static String teacher;public Student(){}public Student(String name, int age) {this.name name;this.age age;}public String getName() {return name;}public void setN…

【SQL】如何用SQL写透视表

【背景】 报表中有一大需求是透视表,目前有很多分析类应用也搭载了此类功能,那么我们能不能直接用SQL做透视表呢? 【分析】 BI类软件将透视表功能做在了前端,但是数据本身还是存储在数据库中,所以必然有方法可以用SQL直接实现透视表。 【心法】 透视表是任意选取一个…

2024最新6月泛二级域名秒收泛目录(二级域名泛站群)

5月免费版本无后台 无更新功能不自动引蜘蛛 2024年5月最新泛程序&#xff0c;秒收秒排&#xff01;&#xff08;泛型程序&#xff09; - 虚良SEO博客 新曾功能&#xff1a; 后台管理 蜘蛛统计 域名添加 一键强引蜘蛛 蜘蛛统计 识别真假蜘蛛 全自动引蜘蛛 域名要求 …

在微服务架构架构中父工程中的`<dependencyManagement>`和 `<dependencies>`的区别

在微服务架构架构中父工程中的<dependencyManagement>和 <dependencies>的区别&#xff1a; 在微服务架构中&#xff0c;通常会有一个父工程&#xff08;或称作聚合工程&#xff09;来管理一组相关的子模块&#xff08;即各个微服务&#xff09;。Maven 的 <de…

vivado wns 时序报警 处理

1&#xff0c;只是阐述wns报警的一种情况&#xff0c;不是本人这种情况的请找其他大神。 2&#xff0c;implement 之后时序报错&#xff0c;wns为负数。 3&#xff0c;打开open implemented design 下的 report timing summary ,观察报告 4&#xff0c;报错的路径是intra cl…

Python 高级技巧:利用 psutil 和 subprocess 实现程序监控与管理

1.简介 在关键的应用程序中&#xff0c;监听程序的运行状态十分重要&#xff0c;因为其可以确保程序的平稳运行。本文将介绍如何使用Python实现这一功能&#xff0c;这里主要使用psutil和subprocess模块。同时&#xff0c;最后会提供一个完整的脚本案例供参考&#xff0c;用于…

Vue3-15 表单的绑定

在Vue 3中&#xff0c;表单输入绑定是实现动态数据双向绑定的重要部分&#xff0c;它让开发者可以轻松地管理和响应用户输入。本文将详细介绍如何在Vue 3中利用v-model指令以及一些特定修饰符来处理不同类型的表单输入。 响应式表单数据 首先&#xff0c;我们定义了一个响应式…

Linux /etc/profile 详解

概述 Linux是一个多用户的操作系统。每个用户登录系统后&#xff0c;都会有一个专用的运行环境。通常每个用户默认的环境都是相同的&#xff0c;这个默认环境实际上就是一组环境变量的定义。用户可以对自己的运行环境进行定制&#xff0c;其方法就是修改相应的系统环境变量&…

Git 前端开发者必备:常用命令全解析

&#x1f6a9;前言 在前端开发的日常工作中&#xff0c;Git 是必不可少的版本控制系统&#xff0c;它帮助我们追踪代码的变化&#xff0c;协作开发&#xff0c;以及恢复到之前的代码状态。熟练掌握Git的基本命令&#xff0c;可以大大提高工作效率和代码管理能力。本文将详细介…

如何检测代理IP是否有效?检查因素与方法全解

代理IP是一种网络代理技术&#xff0c;它是通过中间服务器来转发网络请求的IP地址。当我们使用代理IP时&#xff0c;我们的真实IP地址会被隐藏起来&#xff0c;而代理服务器的IP地址会被用作我们的身份标识。使用代理IP的步骤如下&#xff1a; 1.选择合适的代理服务器 考虑服务…

【JavaEE】网络原理——传输层协议

&#x1f921;&#x1f921;&#x1f921;个人主页&#x1f921;&#x1f921;&#x1f921; &#x1f921;&#x1f921;&#x1f921;JavaEE专栏&#x1f921;&#x1f921;&#x1f921; &#x1f921;&#x1f921;&#x1f921;上一篇文章&#xff1a;【JavaEE】网络编程—…