笔试——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;

代码

相关推荐
汉克老师11 小时前
GESP2025年6月认证C++二级( 第一部分选择题(1-8))
c++·循环结构·表达式·分支结构·gesp二级·gesp2级
YuTaoShao11 小时前
【LeetCode 每日一题】3634. 使数组平衡的最少移除数目——(解法二)排序 + 二分查找
数据结构·算法·leetcode
wangluoqi11 小时前
26.2.6练习总结
数据结构·算法
rainbow688911 小时前
C++高性能框架Drogon:后端开发新标杆
c++
Q741_14711 小时前
C++ 优先级队列 大小堆 模拟 力扣 703. 数据流中的第 K 大元素 每日一题
c++·算法·leetcode·优先级队列·
木井巳11 小时前
【递归算法】二叉搜索树中第K小的元素
java·算法·leetcode·深度优先·剪枝
铉铉这波能秀11 小时前
LeetCode Hot100 中 enumerate 函数的妙用(2026.2月版)
数据结构·python·算法·leetcode·职场和发展·开发
墨有66611 小时前
哈希表从入门到实现,一篇吃透!
数据结构·算法·哈希算法
Yu_Lijing11 小时前
网络复习篇——网络基础(一)
网络·c++·笔记
Bella的成长园地11 小时前
为什么c++中的条件变量的 wait() 函数需要配合while 循环或谓词?
c++·面试