leetcode第300场周赛补题

第一题:6108. 解密消息

原题链接

思路:首先按照key替换基础的字符串得到n,然后将message和字符串n对比,找到相应的字符用基础字符串s来替换

class Solution {
public:
    string decodeMessage(string key, string message) {
        string n;
        for(int i=0;i

第二题:6111. 螺旋矩阵 IV

原题链接

思路:初始化一个一维数组tmp并使其元素为-1,将链表的数据储存到里面,缺少的就是-1;然后用类似acwing中756题蛇形矩阵来给二维数组ans依次赋值,注意边界即可

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode() : val(0), next(nullptr) {}
 *     ListNode(int x) : val(x), next(nullptr) {}
 *     ListNode(int x, ListNode *next) : val(x), next(next) {}
 * };
 */
class Solution {
public:
    vector> spiralMatrix(int m, int n, ListNode* head) {
        vector tmp(m*n,-1);
        vector> ans(m,vector (n));
        int t=0;
        while(head!=NULL){
            tmp[t++]=head->val;
            head=head->next;
        }//将链表的数据存储在数组tmp中,缺少的用-1补齐
        int left=0,right=n-1,top=0,bottom=m-1;
        t=0;
        while(left<=right&&top<=bottom){
            for(int i=left;i<=right;i++) ans[top][i]=tmp[t++];
            for(int i=top+1;i<=bottom;i++) ans[i][right]=tmp[t++];
            for(int i=right-1;i>=left&&toptop&&left

你可能感兴趣的:(c++,数据结构,算法,leetcode)