第 215 场周赛

2024-04-21 09:32
文章标签 周赛 215

本文主要是介绍第 215 场周赛,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

第 215 场周赛

  • 设计有序流
  • 确定两个字符串是否接近
  • 将 x 减到 0 的最小操作数

设计有序流

class OrderedStream {  List<String> res = new ArrayList<String>();String[] strs;int cur = 0;public OrderedStream(int n) {for(int i=0;i<n;i++) {res.add("");}res = new ArrayList<String>();strs = new String[n];cur = 1;}public List<String> insert(int id, String value) {strs[id-1] = value;List<String> curRes = new ArrayList<String>();if(id==cur) {for(int i=cur-1;i<strs.length;i++) {if(strs[i]==""|| strs[i]==null) {break;}res.add(strs[i]);curRes.add(strs[i]);cur++;// System.out.println("cur="+cur);}}return curRes;}
}/*** Your OrderedStream object will be instantiated and called as such:* OrderedStream obj = new OrderedStream(n);* List<String> param_1 = obj.insert(id,value);*/

确定两个字符串是否接近

class Solution {public boolean closeStrings(String word1, String word2) {int len1 = word1.length();int len2 = word2.length();if(len1!=len2) {return false;}Set<Character> set1 = new HashSet<Character>();Set<Integer> num1 = new HashSet<Integer>();int[] count1 = new int[26];for(int i=0;i<len1;i++) {count1[word1.charAt(i)-'a']++;set1.add(word1.charAt(i));}for(int i=0;i<26;i++) {if(count1[i]!=0) {num1.add(count1[i]);}}int[] count2 = new int[26];Set<Character> set2 = new HashSet<Character>();Set<Integer> num2 = new HashSet<Integer>();for(int i=0;i<len2;i++) {count2[word2.charAt(i)-'a']++;set2.add(word2.charAt(i));}for(int i=0;i<26;i++) {if(count2[i]!=0) {num2.add(count2[i]);}}Set<Character> set = new HashSet<Character>();set.addAll(set2);set.addAll(set1);if(set1.size()!=set2.size() || set.size()!=set2.size()) {return false;}Set<Integer> num = new HashSet<Integer>();num.addAll(num2);num.addAll(num1);
//    	System.out.println(num1.size()+" "+num2.size());if(num1.size()!=num2.size() || num.size()!=num1.size()) {return false;}return true;}
}

将 x 减到 0 的最小操作数

两边最小取中间最大
【转载】: https://leetcode-cn.com/problems/minimum-operations-to-reduce-x-to-zero/solution/shi-yong-hua-dong-chuang-kou-zhao-zhong-jian-zui-c/

    class Solution {public int minOperations(int[] nums, int x) {// 使用滑动窗口找中间最长的片段使得sum(片段)=sum(nums)-xint maxPart = -1;int sum = Arrays.stream(nums).sum();int currentSum = 0;int left = 0;int right = 0;while (left < nums.length) {// 如果右边未到尽头,不断先向右探测片段,如果大于目标sum-x则左边移动直到结束if (right < nums.length) {currentSum += nums[right++];}while (currentSum > sum - x && left < nums.length) {currentSum -= nums[left++];}if (currentSum == sum - x) {maxPart = Math.max(maxPart, right - left);}if (right == nums.length) {left++;}}return maxPart == -1 ? -1 : nums.length - maxPart;}}

在这里插入图片描述

这篇关于第 215 场周赛的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/922732

相关文章

LeetCode 第414场周赛个人题解

目录 Q1. 将日期转换为二进制表示 原题链接 思路分析 AC代码 Q2. 范围内整数的最大得分 原题链接 思路分析 AC代码 Q3. 到达数组末尾的最大得分 原题链接 思路分析 AC代码 Q4. 吃掉所有兵需要的最多移动次数 原题链接 思路分析 AC代码 Q1. 将日期转换为二进制表示 原题链接 Q1. 将日期转换为二进制表示 思路分析

LeetCode --- 413周赛

题目列表 3274. 检查棋盘方格颜色是否相同 3275. 第 K 近障碍物查询 3276. 选择矩阵中单元格的最大得分 3277. 查询子数组最大异或值 一、检查棋盘方格颜色是否相同 题目给定两个字符串来表示两个方格的坐标,让我们判断这两个方格的颜色是否相同,这里我们要观察棋盘的颜色特征,我们就会发现奇数行的奇数列和偶数行的偶数列是黑色,其他都是白色,所以我们可以直接计算出每个方

215篇【大模型医疗】论文合集(附PDF)

ChatGPT的横空出世引发了新一轮生成式大模型热潮,作为最新技术的"试验场",医疗也成为众多大模型的热门首选。 我整理了215篇医疗和大模型的论文,供大家学习和参考。 领215篇医疗和大模型论文

[LeetCode] 215. Kth Largest Element in an Array

题:https://leetcode.com/problems/kth-largest-element-in-an-array/description/ 题目 Find the kth largest element in an unsorted array. Note that it is the kth largest element in the sorted order, not th

牛客周赛 Round 58(ABCDF)

目录 A.会赢吗? B.能做到的吧   C.会赢的! D.好好好数 F.随机化游戏时间 A.会赢吗? 思路: 签到题,比大小 void solve(){double a,b;cin>>a>>b;if(a>=b) cout<<"NO";else cout<<"YES";} B.能做到的吧  思路:只要能变大就行,那么我们就将字符串从大到小排序,如

脚本引擎执行javascript代码_Rhino引擎JAVA215

来源:http://www.bjsxt.com/ 一、S02E215_01脚本引擎执行javascript代码_Rhino引擎 package com.test.rhino;import java.io.FileReader;import java.io.IOException;import java.net.URL;import java.util.List;import

LeetCode题练习与总结:数组中的第K个最大元素--215

一、题目描述 给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素。 请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。 你必须设计并实现时间复杂度为 O(n) 的算法解决此问题。 示例 1: 输入: [3,2,1,5,6,4], k = 2输出: 5 示例 2: 输入: [3,2,3,1,2,4,5,5,6], k = 4输

【每日一题】【进制数】【思维】好好好数 牛客周赛 Round 58 D题 C++

牛客周赛 Round 58 D题 好好好数 题目背景 牛客周赛 Round 58 题目描述 样例 #1 样例输入 #1 260 3114 514 样例输出 #1 2114 做题思路 考虑到k-好数实际上是 k k k进制下取0/1的操作。 而且问题也是k-好数的和,其工作原理和算进制数一样。 例如 30 = 3 3 + 3 1 30 = 3^3+3^1 30

【每日一题】【博弈论】【思维】会赢的! 牛客周赛 Round 58 C题 C++

牛客周赛 Round 58 C题 会赢的! 题目背景 牛客周赛 Round 58 题目描述 样例 #1 样例输入 #1 31 11 0-1 -1 样例输出 #1 NOYESPING 做题思路 首先考虑到开始位置为 ( 0 , 0 ) (0,0) (0,0)并且只能使横纵坐标递增。所以如果终点的横纵坐标为负数的情况是不可能到达的。所以平局。 第一个点: x

LeetCode 第413场周赛个人题解

目录 3274. 检查棋盘方格颜色是否相同 原题链接 思路分析 AC代码 3275. 第 K 近障碍物查询 原题链接 思路分析 AC代码 3276. 选择矩阵中单元格的最大得分 原题链接 思路分析 AC代码 3277. 查询子数组最大异或值 原题链接 思路分析 AC代码 3274. 检查棋盘方格颜色是否相同 原题链接 3274. 检查棋盘方