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

news/2024/9/15 10:40:17/ 标签: 算法, c语言, c++

【备战秋招】——算法题目训练和总结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.ppmy.cn/news/1474594.html

相关文章

SQL 视图

基本概念 视图是一个虚拟表&#xff0c;其内容由查询定义。这个查询可以是对一个或多个表的行和列的选择、连接&#xff08;JOIN&#xff09;、分组&#xff08;GROUP BY&#xff09;和排序&#xff08;ORDER BY&#xff09;等操作的组合。然而&#xff0c;与物理表不同的是&a…

【云原生】AWS云平台,ECR推送Helm chart包

文章目录 1、背景信息2、AWS ECR推送OCI1、背景信息 背景一:OCI 是一个围绕容器格式和运行时的开放治理结构,旨在创建开放的行业标准。OCI 由 Docker、CoreOS 和其他容器技术相关的公司于 2015 年创立,现在由 Linux 基金会托管。OCI 的目标是提供一个中立的论坛,以解决容器…

6、Redis系统-数据结构-01-String

Redis 数据结构简介 前言 Redis 是一个高性能的内存数据库&#xff0c;其关键在于其数据结构的设计。Redis 数据结构是指底层实现 Redis 键值对中值的数据类型的方式。它包括了以下几种主要对象&#xff1a; String&#xff08;字符串&#xff09;对象&#xff1a;最基本的数…

C++杂说- 多态和继承的知识在总结

多态 就是多种形态&#xff0c;具体点就是去完成某个行为&#xff0c;当不同的对象去完成时会 产生出不同的状态。 构成多态还有两个条件&#xff1a; 1. 必须通过基类的指针或者引用调用虚函数 2. 被调用的函数必须是虚函数&#xff0c;且派生类必须对基类的虚函数进行重写 虚…

每天一个数据分析题(四百十五)- 线性回归模型

线性回归模型中误差项的数学期望为 A. 0 B. 1 C. 2 D. 3 数据分析认证考试介绍&#xff1a;点击进入 题目来源于CDA模拟题库 点击此处获取答案 数据分析专项练习题库 内容涵盖Python&#xff0c;SQL&#xff0c;统计学&#xff0c;数据分析理论&#xff0c;深度学习&am…

【cocos2dx】【iOS工程】如何保存用户在游戏内的绘画数据,并将数据以图像形式展示在预览界面

【cocos2dx】【iOS工程】如何保存用户在应用内的操作数据&#xff0c;并将数据以图像形式展示在预览界面 设备/引擎&#xff1a;Mac&#xff08;11.6&#xff09;/Mac Mini 开发工具&#xff1a;Xcode&#xff08;15.0.1&#xff09; 开发需求&#xff1a;如何保存用户在应用…

GEE代码实例教程详解:降水量分类分析

简介 在本篇博客中&#xff0c;我们将使用Google Earth Engine (GEE) 对特定区域内的降水量进行分类分析。通过设定不同的降水量阈值&#xff0c;我们可以将降水量分为干旱、中等和湿润三个类别&#xff0c;并分析这些类别随时间的变化。 背景知识 降水量分类 降水量分类是…

如何连接到公司的服务器?

1.下载FileZilla FileZilla的下载与安装以及简单使用&#xff08;有图解超简单&#xff09;-CSDN博客 2.打开 3.输入主机 用户名 密码 端口 注&#xff1a;主机支持的协议类型&#xff1a; 4.连接成功 其他方式也有很多&#xff0c;比如通过cmd&#xff0c;html网页等等 3个…

桥接模式(大话设计模式)C/C++版本

桥接模式 C #include <iostream> using namespace std;class HandsetSoft // 手机软件 { public:virtual ~HandsetSoft() default;virtual void Run() 0; };class HandsetGame : public HandsetSoft // 手机游戏 { public:void Run() override{cout << "运…

C++:从C语言过渡到C++

在这篇博客中&#xff0c;我将会介绍从C语言过渡到C的一些基础知识。 目录 C起源 C的关键字 输出hello&#xff0c;world ​编辑 命名空间 1.什么是命名空间 2.namespace的作用 3.域作用限定符 4.命名空间的使用 IO流 缺省参数 函数重载 引用 1.引用的定义 2.引…

mongo笔记

概述 MongoDB是一个基于分布式文件存储的数据库。由C语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。 MongoDB是一个介于关系数据库和非关系数据库之间的产品&#xff0c;是非关系数据库当中功能最丰富&#xff0c;最像关系数据库的,是分布式文件存储数据库。 …

L1 Simple_ReAct_Agent

参考自https://www.deeplearning.ai/short-courses/ai-agents-in-langgraph&#xff0c;以下为代码的实现。 Basic ReAct Agent(manual action) import openai import re import httpx import os from dotenv import load_dotenv, find_dotenvOPENAI_API_KEY os.getenv(OPEN…

逻辑回归模型(非回归问题,而是解决二分类问题)

目录&#xff1a; 一、Sigmoid激活函数&#xff1a;二、逻辑回归介绍&#xff1a;三、决策边界四、逻辑回归模型训练过程&#xff1a;1.训练目标&#xff1a;2.梯度下降调整参数&#xff1a; 一、Sigmoid激活函数&#xff1a; Sigmoid函数是构建逻辑回归模型的重要激活函数&am…

容联云发布容犀大模型应用,重塑企业“营销服”|WAIC 2024

7月6日&#xff0c;在2024世界人工智能大会上&#xff0c;容联云成功举办主题为“数智聚合 产业向上”的生成式应用与大模型商业化实践论坛。 论坛上&#xff0c;容联云发布了容犀智能大模型应用升级&#xff0c;该系列应用包括容犀Agent Copilot、容犀Knowledge Copilot、容犀…

《C++设计模式》状态模式

文章目录 一、前言二、实现一、UML类图二、实现 一、前言 状态模式理解最基本上的我觉得应该也是够用了&#xff0c;实际用的话&#xff0c;也应该用的是Boost.MSM状态机。 相关代码可以在这里&#xff0c;如有帮助给个star&#xff01;AidenYuanDev/design_patterns_in_mode…

嵌入式Qt开发C++编程基础部分万字总结

嵌入式Qt开发C基础编程 文章目录 嵌入式Qt开发C基础编程1、初识C2、数据类型、运算符和表达式数据类型运算符表达式 3、控制结构1. 条件语句if-elseswitch 2. 循环语句forwhiledo-while 3. 跳转语句breakcontinuegoto&#xff08;不推荐使用&#xff09; 4、数组、指针、引用和…

网络协议 | 计算机网络基础学习笔记

一、网络硬件 关于计算机网络&#xff0c;没有一种被普遍接受的分类方法&#xff0c;但有两个因素非常重要&#xff1a;传输技术和距离尺度 目前普遍使用的传输技术有两种&#xff1a; &#xff08;1&#xff09;广播式连接 &#xff08;2&#xff09;点到点连接 广播式网络…

Hadoop-16-Hive HiveServer2 HS2 允许客户端远程执行HiveHQL HCatalog 集群规划 实机配置运行

章节内容 上一节我们完成了&#xff1a; Metastore的基础概念配置模式&#xff1a;内嵌模式、本地模式、远程模式实机配置远程模式 并测试 背景介绍 这里是三台公网云服务器&#xff0c;每台 2C4G&#xff0c;搭建一个Hadoop的学习环境&#xff0c;供我学习。 之前已经在 V…

python工作中遇到的坑

1. 字典拷贝 有些场景下&#xff0c;需要对字典拷贝一个副本。这个副本用于保存原始数据&#xff0c;然后原来的字典去参与其他运算&#xff0c;或者作为参数传递给一些函数。 例如&#xff0c; >>> dict_a {"name": "John", "address&q…

vue使用 “xlsx-style“: “^0.8.13“ 报错

关于jszip not a constructor报错配置config.js文件后可能还报错的问题&#xff1a; 在node_modules处找到node_modules\xlsx-style\xlsx.js 文件。 将 if(typeof jszip undefined) jszip require(./jszip).JSZip;(应该在xlsx.js文件1339行左右) 替换成 if(typeof jszip und…