leetcode397周赛场

第一题:两个字符串的排列差

给你两个字符串 st,每个字符串中的字符都不重复,且 ts 的一个排列。

排列差 定义为 st 中每个字符在两个字符串中位置的绝对差值之和。

返回 st 之间的排列差

示例 1:

**输入:**s = "abc", t = "bac"

**输出:**2

解释:

对于 s = "abc"t = "bac",排列差是:

  • "a"s 中的位置与在 t 中的位置之差的绝对值。
  • "b"s 中的位置与在 t 中的位置之差的绝对值。
  • "c"s 中的位置与在 t 中的位置之差的绝对值。

即,st 的排列差等于 |0 - 1| + |2 - 2| + |1 - 0| = 2

示例 2:

**输入:**s = "abcde", t = "edbac"

**输出:**12

解释: st 的排列差等于 |0 - 3| + |1 - 2| + |2 - 4| + |3 - 1| + |4 - 0| = 12

提示:

  • 1 <= s.length <= 26
  • 每个字符在 s 中最多出现一次。
  • ts 的一个排列。
  • s 仅由小写英文字母组成。
cpp 复制代码
class Solution {
public:
    int findPermutationDifference(string s, string t) {
        int i=0,ans=0;
        for(i=0;i<s.length();i++){
            int index=t.find(s[i]);
            ans+=abs(i-index);
        }
        return ans;
    }
};

第二题:从魔法师身上吸取的最大能量

在神秘的地牢中,n 个魔法师站成一排。每个魔法师都拥有一个属性,这个属性可以给你提供能量。有些魔法师可能会给你负能量,即从你身上吸取能量。

你被施加了一种诅咒,当你从魔法师 i 处吸收能量后,你将被立即传送到魔法师 (i + k) 处。这一过程将重复进行,直到你到达一个不存在 (i + k) 的魔法师为止。

换句话说,你将选择一个起点,然后以 k 为间隔跳跃,直到到达魔法师序列的末端,在过程中吸收所有的能量

给定一个数组 energy 和一个整数k,返回你能获得的最大能量。

示例 1:

输入: energy = [5,2,-10,-5,1], k = 3

输出: 3

**解释:**可以从魔法师 1 开始,吸收能量 2 + 1 = 3。

示例 2:

输入: energy = [-2,-3,-1], k = 2

输出: -1

**解释:**可以从魔法师 2 开始,吸收能量 -1。

提示:

  • 1 <= energy.length <= 105
  • -1000 <= energy[i] <= 1000
  • 1 <= k <= energy.length - 1
cpp 复制代码
class Solution {
public:
    int maximumEnergy(vector<int>& energy, int k) {
        int len=energy.size();
        int i=0;
        int mx=-1e9;
        int dp[len+1];
        for(i=len-k;i<=len-1;i++){
            dp[i]=energy[i];
            mx=max(mx,dp[i]);
        }
        for(i=len-k-1;i>=0;i--){
            dp[i]=dp[i+k]+energy[i];
            mx=max(mx,dp[i]);
        }
        return mx;
    }
};
相关推荐
非 白4 分钟前
【Java】代理模式
java·开发语言·代理模式
知识分享小能手10 分钟前
Html5学习教程,从入门到精通,HTML5 简介语法知识点及案例代码(1)
开发语言·前端·javascript·学习·前端框架·html·html5
IT、木易12 分钟前
大白话React第二章深入理解阶段
前端·javascript·react.js
Good Note14 分钟前
Golang的静态强类型、编译型、并发型
java·数据库·redis·后端·mysql·面试·golang
晚安72018 分钟前
Ajax相关
前端·javascript·ajax
图书馆钉子户20 分钟前
怎么使用ajax实现局部刷新
前端·ajax·okhttp
bin915336 分钟前
DeepSeek 助力 Vue 开发:打造丝滑的单选按钮(Radio Button)
前端·javascript·vue.js·ecmascript·deepseek
qianmoQ40 分钟前
第五章:工程化实践 - 第五节 - Tailwind CSS 常见问题解决方案
前端·css
我就是我3521 小时前
记录一次SpringMVC的406错误
java·后端·springmvc
向哆哆1 小时前
Java应用程序的跨平台性能优化研究
java·开发语言·性能优化