Leetcode 周赛 243(二)

简介: Leetcode 周赛 243(二)

LeetCode Weekly Contest 243

这是对 LeetCode 第243场周赛的简单讲解和评论。

以下会包括对Leetcode周赛 243的每一题的题解,代码,难度分析,题目类型,以及一些个人对这题的看法等,希望读者们喜欢!

💡注意 : 题解并不一定都是最优解(代码以pass 了 LeetCode 的 Oline Judge 为准),文章初衷是给读者们提供一定的想法和问题的解决方案

  1. [Check if Word Equals Summation of Two Words
  2. Maximum Value after Insertion
  3. Process Tasks Using Servers
  4. Minimum Skips to Arrive at Meeting On Time

前言 : 参加Contest 的好处

  1. 每周抽点时间去练习和学习新的题目这对于个人的编程能力与问题解决能力都有很大的帮助
  2. 在规定的时间内解决一定的题目,这和真实的OA (Online Assessment) 或者 Onsite 面试是一样的,可以把它当作一个很好的 Mock 练习机会
  3. 当你有碰到做不出的题目的时候,你能知道自己的弱项在哪里,然后可以根据这进行加强和练习,比赛是一面给自己的镜子

对本场比赛的一些看法

本场比赛难度相对比较正常,都是比较常规的题目,第三题稍微有点难度需要一点思考

1880. 简单的暴力签到题1881. 一道贪心题目1882. 一道用两个Heap的模拟题目,需要进行一点简单的优化1883.比较难的DP 题目


1881 Maximum Value after Insertion

题意:

给一个字串符形式的数字s,我们现在要把数字x insert进s,返回使其最大的数字。s 可以以负数的形式出现

💡代码:

思路:

  • 首先我们要看一下这个字串符是负数还是整数,然后用贪心发把x给insert进去
  • 如果是负数的话,我们想要使数字部分越小越好
  • 如果是正数的话,我们想要使数字部分越大越好
  • 越大越好 :当我们遇到一个digit 比x小的时候我们就在这位置把x insert进去
  • 越小越好 :当我们遇到一个digit 比x大的时候我们就在这位置把x insert进去

💡代码:

class Solution {

 public String maxValue(String s, int x) {

   boolean neg = (s.charAt(0) == '-') ? true : false;

   String res = s + x;//如果找不到x insert的地方,我们insert在最后面,所以res 的default 值是 s+x

   

 //如果负数的话,i 从 1开始

   for (int i = neg ? 1 : 0; i < s.length(); i++) {

     int digit = s.charAt(i) - '0';

     if (neg) {

       if (x < digit) {

         res = s.substring(0, i) + x + s.substring(i);

         break;

       }

     } else {

       if (x > digit) {

         res = s.substring(0, i) + x + s.substring(i);

         break;

       }

     }

   }

   return res;

 }

}

空间复杂度和时间复杂度:

  • 时间复杂度:O(n),排序
  • 空间复杂度:O(1)


目录
相关文章
|
6月前
|
Go
golang力扣leetcode 第 291 场周赛
golang力扣leetcode 第 291 场周赛
63 0
|
6月前
|
Go vr&ar
golang力扣leetcode 第 288 场周赛
golang力扣leetcode 第 288 场周赛
54 0
|
6月前
|
Go
golang力扣leetcode 第 286 场周赛
golang力扣leetcode 第 286 场周赛
59 0
|
算法 Android开发
LeetCode 周赛上分之旅 #48 一道简单的树上动态规划问题
学习数据结构与算法的关键在于掌握问题背后的算法思维框架,你的思考越抽象,它能覆盖的问题域就越广,理解难度也更复杂。在这个专栏里,小彭与你分享每场 LeetCode 周赛的解题报告,一起体会上分之旅。
67 1
|
6月前
|
Go
golang力扣leetcode第 294 场周赛
golang力扣leetcode第 294 场周赛
55 0
|
6月前
|
算法 Java Go
golang力扣leetcode 第 293 场周赛
golang力扣leetcode 第 293 场周赛
82 0
|
6月前
|
Go
golang力扣leetcode 第 290 场周赛
golang力扣leetcode 第 290 场周赛
52 0
|
6月前
|
Go C++
golang力扣leetcode 第 284 场周赛
golang力扣leetcode 第 284 场周赛
59 0
|
6月前
|
Go
golang力扣leetcode 第 292 场周赛
golang力扣leetcode 第 292 场周赛
68 0
|
6月前
|
存储
Leetcode第383场周赛
在LeetCode第383场周赛中,选手完成了3道题目。第一题是关于边界上的蚂蚁,蚂蚁根据非零整数数组nums的值移动,返回蚂蚁返回边界上的次数。解题方法是计算数组累加和为0的次数。第二题涉及计算网格的区域平均强度,给定一个灰度图像和阈值,返回每个像素所属区域的平均强度。解题关键在于理解相邻像素和区域定义,并计算平均强度。第三题是恢复单词初始状态的最短时间问题,通过移除前k个字符并添加k个字符,求恢复原词所需的最短时间。解题策略是检查去除前k个字符后的子串是否能作为原词的前缀。
34 1
Leetcode第383场周赛