20天 力扣 算法 刷题计划-第二天 双指针

20天 力扣 算法 刷题计划-第二天 双指针,第1张

20天 力扣 算法 刷题计划-第二天 双指针

977. 有序数组的平方https://leetcode-cn.com/problems/squares-of-a-sorted-array/我的代码

 void bubble_sort(int arr[], int sz)
{
    int i = 0;
    //趟数
    for (i = 0; i < sz - 1; i++)
    {
        //一趟冒泡排序
        int j = 0;
        for (j = 0; j < sz - 1 - i; j++)
        {
            if (arr[j] > arr[j + 1])
            {
                int tmp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = tmp;
            }
        }
    }
}

int* sortedSquares(int* nums, int numsSize, int* returnSize){
    (*returnSize) = numsSize;
    int* ans =(int*)malloc(numsSize*sizeof(int));
    //遍历平方
    for(int i=0;i 

189. 旋转数组https://leetcode-cn.com/problems/rotate-array/数学常识:公倍数(common multiple)是指在两个或两个以上的自然数中,如果它们有相同的倍数,这些倍数就是它们的公倍数。公倍数中最小的,就称为这些整数的最小公倍数(lowest common multiple)。

公约数,亦称“公因数”。它是指能同时整除几个整数的数 [1] 。如果一个整数同时是几个整数的约数,称这个整数为它们的“公约数”;公约数中最大的称为最大公约数。对任意的若干个正整数,1总是它们的公因数。

C语言常识:条件运算符(?:)是C语言中唯一的一个三目运算符,它是对第一个表达式作真/假检测,然后根据结果返回另外两个表达式中的一个。
<表达式1>?<表达式2>:<表达式3>
在运算中,首先对第一个表达式进行检验,如果为真,则返回表达式2的值;如果为假,则返回表达式3的值。

方法一代码

void rotate(int* nums, int numsSize, int k){
    int newArr[numsSize];
    for(int i=0;i 

方法二代码

int gcd(int a,int b){
    return b?gcd(b,a%b):a;
}
void swap(int* a,int* b){
    int temp=*a;
    *a=*b;
    *b=temp;
}

void rotate(int* nums, int numsSize, int k){
    k=k%numsSize;
    int count=gcd(k,numsSize);
    for(int start=0;start 

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/3970853.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-10-21
下一篇 2022-10-21

发表评论

登录后才能评论

评论列表(0条)

保存