笔试——Day8

文章目录

第一题

题目

求最小公倍数

思路

  • 最小公倍数等于 = 两数之积除以最大公约数

  • 求最大公约数的方法

    • 辗转相除法:
      先将两个数进行模运算,即a%b
      当 a%b == 0,直接返回 b ,b是最大公约数
      当 a%b != 0,则进行辗转相除,a = b和b = a % b
    cpp 复制代码
    int gcd(int a, int b)
    {
    	if(a%b == 0)
    		return b;
    	else 
    		return gcd(b,a%b);
    }
    • 辗转相减法:
      不相等时,大的那个赋值为大 - 小,直到相等为止
    cpp 复制代码
    int fun(int a, int b)
    {
    	while(a != b)
    	{
    		if(a > b)
    			a = a - b;
    		if(b > a)
    			b = b - a;
    	}
    	return a;
    }

代码

第二题

题目:

数组中的最长连续子序列

思路

排序 + 模拟

  • 排序
  • 使用外层循环控制遍历的起始位置 i,对于每个起始位置 i,初始化计数器 count 为 1
  • 内层循环从i+1开始遍历
    • 如果当前元素比前一个元素大 1,表示连续递增
    • 如果当前元素与前一个元素相等,表示重复元素,跳过该元素继续检查下一个
    • 如果当前元素与前一个元素的差大于 1,表示连续递增序列中断,退出

代码

第三题

题目:

字母收集

思路

动态规划:
dp[i][j]表示从起点(1,1) 到达网格中第i 行第j 列位置时的最大得分
dp[i][j]只能从上方和左边来;

所以,转移方程为:dp[i][j] = max(dp[i - 1][j], dp[i][j - 1]) + t;

代码

相关推荐
0+11117 分钟前
算法 --链表
数据结构·算法·leetcode·链表
aqiu11111133 分钟前
【C++算法打怪专栏】C++ `unordered_set` 常用初始化与插入方法总结
开发语言·c++·算法
Terra.K1 小时前
高精度阶乘求和模板深度解析
开发语言·c++·算法
智码看视界1 小时前
C++智能指针全景剖析及面试20问
开发语言·c++·深度学习·面试·内存管理·智能指针
Peregrine92 小时前
C++ - > 类和对象
java·c++·算法
Gigavision3 小时前
DEAP数据集 2026最新Transformer算法 DEAP 数据集 下载
深度学习·算法·transformer
夜之眷属3 小时前
PriorityQueue:for-each 遍历和 poll 取出,顺序一样吗?
java·服务器·数据结构·后端·算法
‎ദ്ദിᵔ.˛.ᵔ₎3 小时前
c++11:fuction包装器
开发语言·c++
地平线开发者4 小时前
不是线程越多越快:用 hrt_model_exec 在 征程6M 上给 YOLOv5x 建立性能基线
算法
霍霍的袁4 小时前
【C++】哈希表实现指南:从原理到开放定址法、链地址法的实现
c++·学习·哈希算法·散列表·visual studio