1881. 飞机座位

编程入门 行业动态 更新时间:2024-10-14 22:21:48

1881. 飞机<a href=https://www.elefans.com/category/jswz/34/1768033.html style=座位"/>

1881. 飞机座位

1881. 飞机座位

  您的任务是为四口之家尽可能多的分配座位。一个四口之家必须占领一排当中连续的四个座位。过道上的座位(例如2C和2D)不被认为是彼此相邻的。一家人被过道分开是可以的,但在这种情况下必须每一边坐两个。显然,座位不可以分配给一个以上的家庭。 编写一个函数 class Solution {public int solution(int N,String S}; 函数中N表示有N排座位,S表示已经提供出去的座位,函数返回剩下的座位能坐四口之家的最大值。例如, N = 2,S = '1A 2F 1C’,你的函数应该返回2.下图给出了做法。 当N = 1, S = ""(空字符串),你的函数应该返回2,因为我们最多可以提供2个四口之家的座位在一排空座位中,例如下图。

样例

输入: N = 2,S = "1A 2F 1C" 输出: 2 输入: N = 1,S = "" 输出: 2

注意事项

  • N是在[1,50]内的整数;
  • 字符串S由有效的座位名称组成,并用单个空格分隔;
  • 每个座位号最多在字符串S中出现一次。
public class Solution {     /**      * @param N:  the number of rows      * @param S: a list of reserved seats      * @return: nothing      */     public int solution(int N, String S) {         int sum = 0;             String[] s = new String[]{"B", "C", "D", "E", "F", "G", "H", "I"};             String[] strings = S.split(" ");             HashSet<String> hashSet = new HashSet<>(Arrays.asList(strings));             for (int i = 1; i <= N; i++) {                 int flag = 0;                 for (int j = 0; j < s.length; j++) {                     if (!hashSet.contains(i + s[j])) {                         flag++;                         if (flag > 3) {                             if (j == 3 || j == 5 || j == 7) {                                 // System.out.println(i + s[j]);                                 sum++;                                 flag = 0;                             }                         }                     } else {                         flag = 0;                     }                 }             }             return sum;     } }

更多推荐

1881. 飞机座位

本文发布于:2024-02-17 02:37:47,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1692345.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:座位   飞机

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!