首页 > 其他分享 >力扣周赛382

力扣周赛382

时间:2024-03-26 18:59:52浏览次数:20  
标签:周赛 鲜花 int ans Alice 力扣 382 按键 变更

3019. 按键变更的次数

给你一个下标从 0 开始的字符串 s ,该字符串由用户输入。按键变更的定义是:使用与上次使用的按键不同的键。例如 s = "ab" 表示按键变更一次,而 s = "bBBb" 不存在按键变更。

返回用户输入过程中按键变更的次数。

注意:shift 或 caps lock 等修饰键不计入按键变更,也就是说,如果用户先输入字母 'a' 然后输入字母 'A' ,不算作按键变更。

示例 1:

输入:s = "aAbBcC"
输出:2
解释: 
从 s[0] = 'a' 到 s[1] = 'A',不存在按键变更,因为不计入 caps lock 或 shift 。
从 s[1] = 'A' 到 s[2] = 'b',按键变更。
从 s[2] = 'b' 到 s[3] = 'B',不存在按键变更,因为不计入 caps lock 或 shift 。
从 s[3] = 'B' 到 s[4] = 'c',按键变更。
从 s[4] = 'c' 到 s[5] = 'C',不存在按键变更,因为不计入 caps lock 或 shift 。
class Solution {
    public int countKeyChanges(String s) {
        int ans = 0;
        for (int i = 0; i < s.length() - 1; i++) {
            int a = Math.abs(s.charAt(i) - s.charAt(i + 1));
            if (a == 0 || a == 32)
                continue;
            else
                ans++;
        }
        return ans;
    }
}

3020. 子集中元素的最大数量

给你一个 正整数 数组 nums 。

你需要从数组中选出一个满足下述条件的

子集

  • 你可以将选中的元素放置在一个下标从 0 开始的数组中,并使其遵循以下模式:[x, x2, x4, ..., xk/2, xk, xk/2, ..., x4, x2, x]注意k 可以是任何 非负 的 2 的幂)。例如,[2, 4, 16, 4, 2] 和 [3, 9, 3] 都符合这一模式,而 [2, 4, 8, 4, 2] 则不符合。

返回满足这些条件的子集中,元素数量的 最大值 

示例 1:

输入:nums = [5,4,1,2,2]
输出:3
解释:选择子集 {4,2,2} ,将其放在数组 [2,4,2] 中,它遵循该模式,且 22 == 4 。因此答案是 3 。

示例 2:

输入:nums = [1,3,2,4]
输出:1
解释:选择子集 {1},将其放在数组 [1] 中,它遵循该模式。因此答案是 1 。注意我们也可以选择子集 {2} 、{4} 或 {3} ,可能存在多个子集都能得到相同的答案。

1要特殊处理

class Solution {
    public int maximumLength(int[] nums) {
        HashMap<Long, Integer> cnt = new HashMap<>();
        for (int x : nums) {
            cnt.merge((long) x, 1, Integer::sum);
        }
        Integer c1 = cnt.remove(1L);
        int ans = c1 != null ? c1 - 1 | 1 : 0;
        for (long x : cnt.keySet()) {
            int res = 0;
            for (; cnt.getOrDefault(x, 0) > 1; x *= x) {
                res += 2;
            }
            ans = Math.max(ans, res + (cnt.containsKey(x) ? 1 : -1)); 
        }
        return ans;
    }
}

3021. Alice 和 Bob 玩鲜花游戏

Alice 和 Bob 在一个长满鲜花的环形草地玩一个回合制游戏。环形的草地上有一些鲜花,Alice 到 Bob 之间顺时针有 x 朵鲜花,逆时针有 y 朵鲜花。

游戏过程如下:

  1. Alice 先行动。
  2. 每一次行动中,当前玩家必须选择顺时针或者逆时针,然后在这个方向上摘一朵鲜花。
  3. 一次行动结束后,如果所有鲜花都被摘完了,那么 当前 玩家抓住对手并赢得游戏的胜利。

给你两个整数 n 和 m ,你的任务是求出满足以下条件的所有 (x, y) 对:

  • 按照上述规则,Alice 必须赢得游戏。
  • Alice 顺时针方向上的鲜花数目 x 必须在区间 [1,n] 之间。
  • Alice 逆时针方向上的鲜花数目 y 必须在区间 [1,m] 之间。

请你返回满足题目描述的数对 (x, y) 的数目。

当且仅当 x+y 是奇数,Alice 必胜,一行代码

class Solution {
    public long flowerGame(int n, int m) {
        return (long) n * m / 2;
    }
}

标签:周赛,鲜花,int,ans,Alice,力扣,382,按键,变更
From: https://blog.csdn.net/m0_48590589/article/details/137022609

相关文章

  • 力扣刷题之21.合并两个有序链表
    仅做学习笔记之用。题目:将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例1:输入:l1=[1,2,4],l2=[1,3,4]输出:[1,1,2,3,4,4]示例2:输入:l1=[],l2=[]输出:[]示例3:输入:l1=[],l2=[0]输出:[0]......
  • 根据后序(前序)和中序构造二叉树(力扣105,106)
    文章目录题目前知怎样通过中序和前(后)序构造二叉树HashMap题解一、思路二、解题方法三、Code总结题目Problem:105.从前序与中序遍历序列构造二叉树Problem:106.从中序与后序遍历序列构造二叉树中后:给定两个整数数组inorder和postorder,其中inorder......
  • 牛客周赛 Round 38做题笔记
    一.题目链接登录—专业IT笔试面试备考平台_牛客网牛客网是互联网求职神器,C++、Java、前端、产品、运营技能学习/备考/求职题库,在线进行百度阿里腾讯网易等互联网名企笔试面试模拟考试练习,和牛人一起讨论经典试题,全面提升你的技术能力https://ac.nowcoder.com/acm/contest/78......
  • 【每日算法】理论:AIGC模型 刷题:力扣链表操作
    上期文章【每日算法】理论:图像分割相关刷题:设计链表文章目录上期文章一、上期问题二、理论问题1、LAMAInpaint2、IPadapter模型3、Anydoor4、vit(VisionTransformer)架构5、MAE6、CLIP模型三、力扣刷题回顾-链表操作203.移除链表元素206.反转链表24.两两交换链表......
  • 牛客周赛 Round 38
    比赛链接:牛客周赛Round38A:小红的正整数自增voidsolve(){lln;cin>>n;for(inti=0;i<=9;i++){lly=n+i;if(y%10==0){cout<<i<<'\n';return;}}}B:......
  • 【力扣】加油站(读题)
    题目描述分析在思路上并不是很难,是一道贪心题,但是题目中的一些细节理解不好的话稳容易出问题。这道题在实现上的正确方法应该是:逐个遍历汽车的起点,在每个起点上汽车可能有两个情况:没油或者回到了起点,如果回到了起点的话,则这个起点是可行的。而理解错误的地方就在于汽车没油......
  • 【力扣刷题日记】1076.项目员工II
    前言练习sql语句,所有题目来自于力扣(https://leetcode.cn/problemset/database/)的免费数据库练习题。今日题目:1076.项目员工II表:Project列名类型project_idintemployee_idint(project_id,employee_id)是该表的主键(具有唯一值的列的组合)。employee_id是该表的外键(......
  • 【力扣白嫖日记】1069.产品销售分析II
    前言练习sql语句,所有题目来自于力扣(https://leetcode.cn/problemset/database/)的免费数据库练习题。今日题目:1069.产品销售分析II表:Sales列名类型sale_idintproduct_idintyearintquantityintpriceintsale_id是这个表的主键(具有唯一值的列)。product_id是Product表......
  • Offer必备算法16_字符串_四道力扣题详解(由易到难)
    目录①力扣14.最长公共前缀解析代码1(两两比较)解析代码2(统一比较)②力扣5.最长回文子串解析代码(中心拓展)③力扣67.二进制求和解析代码④力扣43.字符串相乘解析代码(无进位相乘)本篇完。①力扣14.最长公共前缀14.最长公共前缀难度简单编写一个函数来查找字符......
  • LeetCode第390场周赛题解(c++)
    真的无语了,早上怎么都提交不了,显示未知错误。。。结果晚上就可以提交了。唉100245.每个字符最多出现两次的最长子字符串给你一个字符串 s ,请找出满足每个字符最多出现两次的最长子字符串,并返回该子字符串的 最大 长度。示例1:输入: s="bcbbbcba"输出: 4解释:以......