2021-09-24meituan-012小美的书架

2021-09-24meituan-012小美的书架
输入:

  • 第一行三个正整数 M,N,Q,表示小美书架有 N 行编号 1 到 N ,书本编号从 1 到 M ,接下来有 Q 个操作
  • 接下来 Q 行,每行是下列操作中的一种:
    1. x y : x 是书本的编号,y 是书架的行编号,代表小美将编号为 x 的书本放置到 y 行上。若该书本在小团手上则放置无效,若原来该书在书架上且原行上锁则放置无效,若该书被放置到一个锁了的行上则放置无效。
    2. y : y 是书架的行编号,代表小美将行编号为 y 的书架加锁,对已经上锁的书架行该操作无效。
    3. y : y 是书架的行编号,代表小美将行编号为 y 的书架锁去掉,对无锁的书架行该操作无效。
    4. x : x 是书本的编号,代表小团想借编号为 x 的书本,对该操作若可以借到输出一行正整数在哪一行,借不到输出一行 -1
    5. x : x 是书本的编号,代表小团还回来编号为 x 的书本。若该书本不在小团手上该操作无效。
      输出:
  • 对于每个操作 4 ,若可以借到输出一行正整数在哪一行,借不到输出一行 -1 。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/FvoBGh
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

输入:
5 5 10
1 1 4
1 2 3
1 3 1
2 1
4 1
5 2
4 3
4 5
3 1
4 2
输出:
4
-1
-1
3

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/FvoBGh
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
2021-09-24meituan-012小美的书架

#include<cstdio>
#include<cstring>

using namespace std;

int main() {
    int m, n, q;
    scanf("%d %d %d", &m, &n, &q);
    int book[m + 1]; // 1~m号书在哪行书架上,0表示未上架,-1表示借出
    memset(book, 0, sizeof(book));
    int locked[n + 1]; // 1~n行书架是否加锁
    memset(locked, 0, sizeof(locked));
    for (int i = 0; i < q; ++i) {
        int c;
        scanf("%d", &c);
        switch(c) {
            int x, y;
            case 1:
                scanf("%d %d", &x, &y);
                if (locked[y] == 0 && (book[x] == 0 || book[x] > 0 && locked[book[x]] == 0))
                    book[x] = y;
                break;
            case 2:
                scanf("%d", &y);
                locked[y] = 1;
                //1表示对这一行的书本进行加锁
                break;
            case 3:
                scanf("%d", &y);
                locked[y] = 0;
                break;
            case 4:
                scanf("%d", &x);
                if (book[x] > 0 && locked[book[x]] == 0) { // 上架且未上锁的书才可以借出
                    printf("%d\n", book[x]);
                    book[x] = -1; // 借出
                }
                else
                    printf("-1\n");
                break;
            case 5:
                scanf("%d", &x);
                if (book[x] == -1)
                    book[x] = 0; // 还书,变为未上架状态
                break;
        }
    }
    return 0;
}

/*作者:xgn911
链接:https://leetcode-cn.com/problems/FvoBGh/solution/cyong-shu-zu-shi-xian-ha-xi-by-xgn911-bh8i/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。*/
上一篇:Jsの练习-数组常用方法 -forEach()


下一篇:oracle锁表解表