[打卡帖]《九日集训》诺亚方舟(第三天)

223文阳 223文阳 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

一、33. 搜索旋转排序数组 - 力扣(LeetCode) (leetcode-cn.com)

实现一个函数,在一个整型数组中找一个整数,返回它的数组下标,如果不存在则返回-1

(1)传入的参数int*nums代表一个整型数组,int numsSize代表数组长度,target则表示要查找的数;

(2)遍历数组的每个元素;

(3)如果找到某个元素和传入参数target相等,则直接放回下标i;

(4)如果一直没有找的哦啊,则返回-1;

int search(int* nums, int numsSize, int target){
    for(int i = 0; i<numsSize ; i++){
        if(nums[i]==target){
            return i; 
        }
    }
    return -1;
}

二、81. 搜索旋转排序数组 II - 力扣(LeetCode) (leetcode-cn.com)

 

bool search(int* nums, int numsSize, int target){
    for(int i=0;i<numsSize;i++){
        if(nums[i]==target){
            return true;
        }
    }
    return false;
}

 

三、153. 寻找旋转排序数组中的最小值 - 力扣(LeetCode) (leetcode-cn.com)

(1)定义一个全局最小值;

(2)遍历数组所有元素;

(3)如果数组元素nums[i]比全局最小值小,则更新全局最小值。

用c写,但是java同理
int findMin(int* nums, int numsSize){
    int min =1;
    for(int i=1;i<numsSize;i++){
        if(nums[i] < nums[i-1])
           return nums[i];
         }
         return nums[0];
    }

 

四、70. 爬楼梯 - 力扣(LeetCode) (leetcode-cn.com)

 

假设你正在爬楼梯。需要 n 阶你才能到达楼顶。

每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?

注意:给定 n 是一个正整数。

示例 1:

输入: 2
输出: 2
解释: 有两种方法可以爬到楼顶。
1.  1 阶 + 1 阶
2.  2 阶
示例 2:

输入: 3
输出: 3
解释: 有三种方法可以爬到楼顶。
1.  1 阶 + 1 阶 + 1 阶
2.  1 阶 + 2 阶
3.  2 阶 + 1 阶

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/climbing-stairs
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

int climbStairs(int n){
    int f[10000];
    f[0] = f[1] = 1;
    for(int i = 2; i<=n;i++){
        f[i] = f[i-1]+f[i-2];
    }
    return f[n];
}

 

五、509. 斐波那契数 - 力扣(LeetCode) (leetcode-cn.com)

 

斐波那契数,通常用 F(n) 表示,形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是:

F(0) = 0,F(1) = 1
F(n) = F(n - 1) + F(n - 2),其中 n > 1
给你 n ,请计算 F(n) 。

 

示例 1:

输入:2
输出:1
解释:F(2) = F(1) + F(0) = 1 + 0 = 1
示例 2:

输入:3
输出:2
解释:F(3) = F(2) + F(1) = 1 + 1 = 2
示例 3:

输入:4
输出:3
解释:F(4) = F(3) + F(2) = 2 + 1 = 3
 

提示:

0 <= n <= 30

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/fibonacci-number
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

int fib(int n){
    int res=0;
    int ans = 1;
    for(int i = 0;i<n;i++){
        res += ans;
        ans = res-ans;
    }
    return res;
}

 

六、1137. 第 N 个泰波那契数 - 力扣(LeetCode) (leetcode-cn.com)

解题思路:

  1. 因 0 <= n <= 37,则创建长度为 38 的 int 数组 nums

  2. 据题意,将 nums[0] = 0,nums[1] = 1,nums[2] = 1

  3. 从 3 开始循环至 n(包含 n)

  4. 计算出 nums[i] 的结果,结果为索引 i 的前三项之和

  5. 最终结果为 nums[n]

 

class Solution {
    public int tribonacci(int n) {
    int[] m = new int[38];
    m[0] = 0;
    m[1] = 1;
    m[2] = 1;
    for (int i = 3; i <= n; i++) {
    m[i] = m[i - 1] + m[i - 2] + m[i - 3];
    }
    return m[n];
    }
}
用C编写
int tribonacci(int n){
    if(n==0)
    return 0;
    if(n<=2)
    return 1;
    int a = 0,b = 1,c = 1;
    for(int i = 3;i <= n; i++){
        int sum = a+b+c;
        a=b,b=c,c=sum;
    }
    return c;
}

七、2006. 差的绝对值为 K 的数对数目 - 力扣(LeetCode) (leetcode-cn.com)

给你一个整数数组 nums 和一个整数 k ,请你返回数对 (i, j) 的数目,满足 i < j 且 |nums[i] - nums[j]| == k 。

|x| 的值定义为:

如果 x >= 0 ,那么值为 x 。
如果 x < 0 ,那么值为 -x 。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/count-number-of-pairs-with-absolute-difference-k
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

int countKDifference(int* nums, int numsSize, int k){
    int ans = 0;
    for(int i = 0;i<numsSize;i++){
        for(int j = i+1;j<numsSize;j++){
            if(abs( nums[i] - nums[j] ) == k)
                ans++;
            }
        }
        return ans;
}

 

八、LCP 01. 猜数字 - 力扣(LeetCode) (leetcode-cn.com)

小A 和 小B 在玩猜数字。小B 每次从 1, 2, 3 中随机选择一个,小A 每次也从 1, 2, 3 中选择一个猜。他们一共进行三次这个游戏,请返回 小A 猜对了几次?

输入的guess数组为 小A 每次的猜测,answer数组为 小B 每次的选择。guess和answer的长度都等于3。

 

guess 的长度 = 3
answer 的长度 = 3
guess 的元素取值为 {1, 2, 3} 之一。
answer 的元素取值为 {1, 2, 3} 之一。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/guess-numbers
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

方法一:
int game(int* guess, int guessSize, int* answer, int answerSize){
    int ans = 0;
    for(int i = 0;i < 3;i++){
        ans += (guess[i]==answer[i])? 1:0;
    }
    return ans;
}
方法二:
int game(int* guess, int guessSize, int* answer, int answerSize){
    int count = 0;
    for(int i=0;i<answerSize;i++){ 
        if(answer[i]==guess[i])
            ++count;
    }
    return count;
}

九、LCP 06. 拿硬币 - 力扣(LeetCode) (leetcode-cn.com)

桌上有 n 堆力扣币,每堆的数量保存在数组 coins 中。我们每次可以选择任意一堆,拿走其中的一枚或者两枚,求拿完所有力扣币的最少次数。

示例 1:

输入:[4,2,1]

输出:4

解释:第一堆力扣币最少需要拿 2 次,第二堆最少需要拿 1 次,第三堆最少需要拿 1 次,总共 4 次即可拿完。

示例 2:

输入:[2,3,10]

输出:8

限制:

1 <= n <= 4
1 <= coins[i] <= 10

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/na-ying-bi
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

方法一:
int minCount(int* coins, int coinsSize){
    int count = 0;
    for(int i = 0;i<coinsSize;i++){
        count += (coins[i]+1)/2;
    }
    return count;
}
方法二:
int minCount(int* coins, int coinsSize){
    int count = 0;
    for(int i = 0; i<coinsSize;i++)
        count +=((coins[i]+1)>>1);
        return count;
}

 

...全文

相关推荐

技术转移机构如何基于数据提升项目撮合精准度?.docx

技术转移机构如何基于数据提升项目撮合精准度?

BIZKEEN

超扭滑模与快速终端滑模的永磁同步电机无感控制:理论、离散化实现与仿真研究(Simulink仿真实现)

内容概要:本文系统研究了超扭滑模控制(STSMC)与快速终端滑模控制(FTSMC)在永磁同步电机(PMSM)无感控制中的应用,重点涵盖其理论基础、离散化实现方法及Simulink仿真验证。文章深入阐述了两种高阶滑模控制策略的设计原理,利用磁链无感观测技术实现转子位置与速度的精确估计,从而省去物理传感器,有效提升了系统的可靠性与鲁棒性。同时,提供了完整的Simulink仿真模型构建方案,包括控制器设计、关键参数整定及动态响应性能分析,充分验证了所提出的方法在零速与低速工况下的卓越控制性能和有效性。; 适合人群:具备电机控制、现代控制理论基础知识及熟练掌握MATLAB/Simulink仿真技能的研究生、科研人员与工程技术人员。; 使用场景及目标:①深入理解高阶滑模控制在电机驱动系统中的设计思想与具体实现;②掌握基于滑模观测器的无感控制核心技术;③开展永磁同步电机高性能控制算法的理论研究、仿真验证与工程化探索。; 阅读建议:建议将文中详尽的理论推导与Simulink仿真模型相结合进行学习,重点关注滑模面的构建、抖振抑制策略的实施以及离散化处理的细节,有条件的研究者可进一步将算法移植到DSP等硬件平台进行实验验证,以深化对理论的理解并检验其实际应用效果。

长安程序猿

多源动态最优潮流的分布鲁棒优化方法(IEEE118节点)(Matlab代码实现)

内容概要:本文系统阐述了基于Matlab的多源动态最优潮流分布鲁棒优化方法,聚焦于IEEE118节点电力系统,旨在应对高比例可再生能源接入背景下源荷双重不确定性所带来的调度挑战。该方法深度融合分布鲁棒优化理论,通过构建能够抵御最坏情况概率分布的决策模型,有效提升了电力系统在复杂不确定性环境下的运行安全性、经济性与可靠性。研究不仅提供了完整的Matlab代码实现,便于结果复现与算法验证,还特别关注了含风电等新能源的现代电网低碳调度问题,为解决实际工程中的优化调度难题提供了强有力的理论支撑和技术工具。; 适合人群:具备电力系统分析基础和Matlab编程能力的研究生、科研人员及从事智能电网优化运行、能源系统规划等相关领域的工程技术人员。; 使用场景及目标:①研究含高比例可再生能源接入的电力系统动态最优潮流问题;②掌握分布鲁棒优化在电力系统经济调度、低碳调度中的建模思想与求解方法;③利用IEEE118标准测试系统进行算法有效性验证与性能对比分析;④基于所提供的Matlab代码进行二次开发,探索新型不确定性优化理论在电力系统中的创新应用。; 阅读建议:建议读者结合电力系统最优潮流、不确定性优化理论(特别是分布鲁棒优化)的背景知识进行学习,重点关注模型的构建逻辑、目标函数与约束条件的设计原理,以及Matlab代码的具体实现细节。在学习过程中,应动手调试代码,尝试修改系统参数(如新能源出力波动范围、负荷水平等),以观察不同场景下优化结果的变化,从而深刻理解该方法的适应性、优势及其潜在的局限性。

天天程序猿

车间调度基于GA、PSO、SA、ACO、TS优化算法的车间调度比较研究(Matlab代码实现)

内容概要:本文系统性地比较了遗传算法(GA)、粒子群优化(PSO)、模拟退火(SA)、蚁群优化(ACO)和禁忌搜索(TS)五种智能优化算法在车间调度问题中的性能表现,并提供了基于Matlab的完整代码实现。研究聚焦于调度优化的核心目标——最小化完工时间(makespan),通过标准测试案例对各算法的收敛速度、求解精度和稳定性进行了深入对比分析,旨在为实际生产调度中算法的选择与改进提供科学依据。文中不仅详述了每种算法的设计思路与关键参数设置,还展示了其实现逻辑,便于读者理解、复现与拓展。; 适合人群:从事智能制造、工业工程、运筹优化等相关领域的研究人员,以及具备Matlab编程基础、希望将智能优化算法应用于实际调度问题的研究生和工程师。; 使用场景及目标:① 掌握主流智能优化算法在解决NP-hard车间调度问题上的具体应用与差异;② 学习如何利用Matlab实现并对比不同优化算法的性能;③ 为解决生产制造、物流配送等领域中的资源调度难题提供算法选型和技术参考。; 阅读建议:建议读者在阅读时重点关注各算法的Matlab实现代码和实验结果对比部分,动手运行代码以直观感受不同算法的寻优过程和效果差异。同时,可结合具体调度约束条件,尝试调整算法参数或融合多种算法思想,以深化对优化机理的理解。

天天程序猿

3D人物伍子胥智能对话及反应动作报告

3D人物伍子胥智能对话及反应动作报告

atye115
评论
收藏 已收藏
分享
返回顶部
223文阳
万人千题 64,203 成员 15,010 内容