刷题记录 25-3-27

为了保研准备机考,写一下算法题,之前还没什么好感,写了一下,通过的时候还是很有成就感的。不过今天好困,就做这些,今天早下班了。前几天在开组会出题之类的,都在熬夜。

易错点总结

太久没写c了,但是配合LLM还是会写很多的,自己从头写的话各种小问题,大佬轻喷。

  1. 单引号表示字符,双引号表示字符串,不要搞混

  2. 有类型的函数要return

  3. scanf接受的参数要加&比如scanf("%d\n", &len);

  4. 要用int main,return 0。

力扣hot100

有效的括号

这里的思路主要就是把左边的括号都改为右边的存储到栈里,然后有的时候直接比对就行了:

bool isValid(char* s) {
    int s_len = strlen(s);
    char temp[s_len];
    int p = 0;
    for(int i = 0; s[i] != '\0'; i++){
        if(s[i] == '(' || s[i] == '[' || s[i] =='{'){
            if(s[i] == '('){
                temp[p++] = ')';
            }else if(s[i] == '['){
                temp[p++] = ']';
            }else if(s[i] == '{'){
                temp[p++] = '}';
            }
        }else if(p == 0){
            return false;
        }else{
        if(temp[p-1] == s[i]){
                temp[--p] = '\0';
        }else{
            return false;
        }
        }
    }
    if(strlen(temp) == 0) return true;
    else return false;
}

两数之和

这里的思路很简单就是暴力求解:

/**
 * Note: The returned array must be malloced, assume caller calls free().
 */
int* twoSum(int* nums, int numsSize, int target, int* returnSize) {
    int temp_sum = 0;
    *returnSize = 0;
    int *return_index = (int*) malloc(2*sizeof(int));
    for (int i = 0; i < numsSize; i++){
        {
            for(int j = i+1; j < numsSize; j++){
                temp_sum = nums[i] + nums[j];
                if(temp_sum == target){    
                    return_index[0] = i;
                    return_index[1] = j;
                    *returnSize = 2;
                    return return_index;
                }
            }
        }

    }
    return return_index;
}

洛谷题单 2023 官方题单(1~4 月)

[yLOI2023] 分解只因数

就是看是不是奇数就行。但是要写int main……我以为void也行。

#include <stdio.h>

int main(){
    long long len = 0;

    scanf("%d", &len);
    long long get[len];
    long long  temp = 0;
    for(int i = 0; i < len; i++){
        scanf("%lld", &get[i]);
    }
    for(int i = 0; i < len; i++){
        temp = get[i] % 2;
        if(temp != 0){
            printf("Yes\n");
        }else{
            printf("No\n");
        }
    }
    return 0;
}
posted @ 2025-03-27 20:08  .N1nEmAn  阅读(58)  评论(0)    收藏  举报