《九日集训 - 雪国列车》(第四天) 一维数组(leetcode零基础打卡指南)

这篇博客通过对比分析了不同代码实现的效率,涉及LeetCode的多个问题,包括搜索旋转排序数组、斐波那契数列等。错误的递归解决方案在计算速度上过慢,而正确的做法是利用动态规划或迭代减少重复计算,提高算法性能。作者提到了使用数组存储中间结果以避免重复计算,从而解决了斐波那契数列的效率问题。
摘要由CSDN通过智能技术生成

1.leetcode.33搜索旋转排序数组

class Solution
{
public int search(int [] nums,int target)
{
for(i=0;i<nums.length;i++)
{
if(nums[i]==target)//如果存在于数组内,返回索引位置--数组下标
return i;
}
return -1;//如果不存在返回-1
}
}

 2.leetcode.81 搜索旋转排序数组二

 

​
class Solution
{
public boolean search(int [] nums,int target)
{
for(i=0;i<nums.length;i++)//遍历
{
if(nums[i]==target)//如果存在于数组内,同理,返回true
return true;
}
return false;//如果不存在返回false
}
}

​

3.leetcode.153 寻找旋转排序数组中的最小值

 

​
class Solution
{
public int search(int [] nums,int target)
{ 
int min=nums[0];
for(int i=0;i<nums.length;i++)
{
if(min>nums[i])//判断大小,如果min大的话就交换值
min=nums[i];
}
return min;
}
}

​

4.leetcode.70 爬楼梯

 

来看下面一段错误的代码

//来看下面错误的代码,也是我刚写的思路,因为在列举的时候发现规律和斐波那契数列差不多
class Solution
{
public  int jiejie(int n)
{
if(n==1)
{
return 1;
}
if(n==2)
{
return 2;
}
else
return jiejie(n-1)+jiejie(n-2);
}
}

下面是正确的代码 

class Solution {
    public int climbStairs(int n) {
        int[] jie = new int[n + 1];
        jie[0] = 1;
        jie[1] = 1;
        for(int i = 2; i <= n; i++) {
            jie[i] = jie[i - 1] + jie[i - 2];
        }
        return jie[n];
    }
}
  • 大致思路几乎一样,但是在运算时,第一个代码的计算速率过慢,不满足题意。
  • 5.leetcode.509.斐波那契数列
  • 根据斐波那契数列的特点我们可以用简单递归去水这道题
​
class Solution {
    public int fibs(int n) {
        if(n==0||n==1)
return n;
        else
return fibs(n-1)+fibs(n-2);
    }
}

​

 6.leetcode.1137第N个斐波那契数列

注意哦,如果这道题像上一道题一样用简单递归写,会提示超出时间限制

int jie(int n)
{
int a[38];
a[0]=0;//初始化
a[1]=a[2]=1;
int i=3;
for(i=3;i<=n;i++)
{
a[i]=a[i-1]+a[i-2]+a[i-3];//根据斐波那契数列和题目案例,我们得出第n项在大于2时,会等于前3项之和
}
return a[n];
}

 结合者对比分析!

最后,真诚的感谢 英雄哥 推出的打卡活动,不管多忙,明天也要继续打卡哦!

九国列车打卡第四天!

  • 34
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 40
    评论
评论 40
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小吴有想法

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值