力扣简单题 392.1491.509

题目1:判断子序列

给定字符串 s 和 t ,判断 s 是否为 t 的子序列。

字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace""abcde"的一个子序列,而"aec"不是)。

进阶:

如果有大量输入的 S,称作 S1, S2, ... , Sk 其中 k >= 10亿,你需要依次检查它们是否为 T 的子序列。在这种情况下,你会怎样改变代码?

致谢:

特别感谢 @pbrother 添加此问题并且创建所有测试用例。

示例 1:

输入:s = "abc", t = "ahbgdc"
输出:true

示例 2:

输入:s = "axc", t = "ahbgdc"
输出:false

提示:

  • 0 <= s.length <= 100
  • 0 <= t.length <= 10^4
  • 两个字符串都只由小写字符组成。
class Solution {
    public boolean isSubsequence(String s, String t) {
        char arrs[]=s.toCharArray();
        char arrt[]=t.toCharArray();
        int j=0;
        if(s.length()==0)
            return true;
        for (int i = 0; i < t.length(); i++) {
            if(arrs[j]==arrt[i]){
                j++;
            }
            if(j==s.length()){
                return true;
            }
        }
        return false;
    }
}

题目2:去掉最低工资和最高工资后的工资平均值

给你一个整数数组 salary ,数组里每个数都是 唯一 的,其中 salary[i] 是第 i 个员工的工资。

请你返回去掉最低工资和最高工资以后,剩下员工工资的平均值。

示例 1:

输入:salary = [4000,3000,1000,2000]
输出:2500.00000
解释:最低工资和最高工资分别是 1000 和 4000 。
去掉最低工资和最高工资以后的平均工资是 (2000+3000)/2= 2500

示例 2:

输入:salary = [1000,2000,3000]
输出:2000.00000
解释:最低工资和最高工资分别是 1000 和 3000 。
去掉最低工资和最高工资以后的平均工资是 (2000)/1= 2000

示例 3:

输入:salary = [6000,5000,4000,3000,2000,1000]
输出:3500.00000

示例 4:

输入:salary = [8000,9000,2000,3000,6000,1000]
输出:4750.00000

提示:

  • 3 <= salary.length <= 100
  • 10^3 <= salary[i] <= 10^6
  • salary[i] 是唯一的。
  • 与真实值误差在 10^-5 以内的结果都将视为正确答案。
class Solution {
    public double average(int[] salary) {
        int max=salary[0];
        int min=salary[0];
        int sum=0;
        for(int i=0;i<salary.length;i++){
            sum+=salary[i];
            if(salary[i]>max){
                max=salary[i];
            }
            if(salary[i]<min){
                min=salary[i];
            }
        }
        int n=salary.length-2;
        sum=sum-max-min;
        return (double)sum/n;
    }
}

题目3:斐波那契数

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

F(0) = 0,F(1) = 1
F(n) = F(n - 1) + F(n - 2),其中 n > 1

给定 n ,请计算 F(n) 。

示例 1:

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

示例 2:

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

示例 3:

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

提示:

  • 0 <= n <= 30
class Solution {
    public int fib(int n) {
        if(n==0)
        return 0;
        if(n==1)
        return 1;
        return fib(n-1)+fib(n-2);
    }
}

相关推荐

  1. 每日算法简单篇)

    2024-05-04 19:54:05       39 阅读
  2. 简单 392.1491.509

    2024-05-04 19:54:05       13 阅读
  3. 第13-罗马数字转整数[简单]

    2024-05-04 19:54:05       45 阅读
  4. sql

    2024-05-04 19:54:05       12 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-05-04 19:54:05       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-05-04 19:54:05       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-05-04 19:54:05       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-05-04 19:54:05       18 阅读

热门阅读

  1. 字符串哈希-最易懂的证明

    2024-05-04 19:54:05       8 阅读
  2. Linux下运行jar包的方式

    2024-05-04 19:54:05       10 阅读
  3. MongoDB聚合运算符:$tan

    2024-05-04 19:54:05       9 阅读
  4. Spring MVC系列之异步请求

    2024-05-04 19:54:05       7 阅读
  5. 关于作者

    2024-05-04 19:54:05       17 阅读
  6. 商业银行终端安全管理创新与实践

    2024-05-04 19:54:05       10 阅读
  7. Service Mesh 是什么?

    2024-05-04 19:54:05       12 阅读