日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

力扣(LeetCode)刷题,简单题(第16期)

發(fā)布時(shí)間:2023/11/27 生活经验 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 力扣(LeetCode)刷题,简单题(第16期) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

目錄

第1題:數(shù)組異或操作

第2題:交換數(shù)字

第3題:按既定順序創(chuàng)建目標(biāo)數(shù)組

第4題:數(shù)組中兩元素的最大乘積

第5題:刪除鏈表中的節(jié)點(diǎn)

第6題:在既定時(shí)間做作業(yè)的學(xué)生人數(shù)

第7題:二進(jìn)制鏈表轉(zhuǎn)整數(shù)

第8題:分割平衡字符串

第9題:不用加號(hào)的加法

第10題:字符串相加


力扣(LeetCode)定期刷題,每期10道題,業(yè)務(wù)繁重的同志可以看看我分享的思路,不是最高效解決方案,只求互相提升。

第1題:數(shù)組異或操作

試題要求如下:

回答(C語言):

int xorOperation(int n, int start){int* data_buf = (int*)malloc(sizeof(int) * n);int temp = 0;memset(data_buf,0,sizeof(int) * n);for(int i = 0;i < n;i++){data_buf[i] = start+2*i;}temp = data_buf[0];for(int i = 1;i < n;i++){temp ^= data_buf[i];}return temp;
}

運(yùn)行效率如下所示:


第2題:交換數(shù)字

試題要求如下:

解答思路:

異或思路:a ^ b = c? c ^ b = a? a ^ c = b

回答(C語言):

/*** Note: The returned array must be malloced, assume caller calls free().*/
int* swapNumbers(int* numbers, int numbersSize, int* returnSize){numbers[0] ^= numbers[1];numbers[1] ^= numbers[0];numbers[0] ^= numbers[1];*returnSize = numbersSize;return numbers;
}

運(yùn)行效率如下所示:


第3題:按既定順序創(chuàng)建目標(biāo)數(shù)組

試題要求如下:

回答(C語言):

/*** Note: The returned array must be malloced, assume caller calls free().*/
int* createTargetArray(int* nums, int numsSize, int* index, int indexSize, int* returnSize){int *returned = calloc(numsSize,sizeof(int));for(int i=0;i<numsSize;i++){for(int j=numsSize-1;j>index[i];j--){returned[j] = returned[j-1];}returned[index[i]]=nums[i];}*returnSize = numsSize;return returned;
}

運(yùn)行效率如下所示:


第4題:數(shù)組中兩元素的最大乘積

試題要求如下:

回答(C語言):

int maxProduct(int* nums, int numsSize){int m = 0, n = 0;for (int i = 0; i < numsSize; i++){if (nums[i] > m) {n = m;m = nums[i];}elsen = n > nums[i] ? n : nums[i];}return (m - 1)*(n - 1);
}

運(yùn)行效率如下所示:


第5題:刪除鏈表中的節(jié)點(diǎn)

試題要求如下:

回答(C語言):

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     struct ListNode *next;* };*/
void deleteNode(struct ListNode* node) {node->val = node->next->val;node->next = node->next->next;  
}

運(yùn)行效率如下所示:


第6題:在既定時(shí)間做作業(yè)的學(xué)生人數(shù)

試題要求如下:

回答(C語言):

int busyStudent(int* startTime, int startTimeSize, int* endTime, int endTimeSize, int queryTime){int cou = 0;for(int i = 0;i < startTimeSize;i++){if((startTime[i] <= queryTime) && (endTime[i] >= queryTime)){cou++;}}return cou;
}

運(yùn)行效率如下所示:


第7題:二進(jìn)制鏈表轉(zhuǎn)整數(shù)

試題要求如下:

回答(C語言):

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     struct ListNode *next;* };*/int getDecimalValue(struct ListNode* head){int sum = 0;while (head != NULL) {sum = (sum<<1) + head->val;head = head->next;}return sum;
}

運(yùn)行效率如下所示:


第8題:分割平衡字符串

試題要求如下:

回答(C語言):

int balancedStringSplit(char * s){int len = strlen(s);int temp = 0,cou = 0;for(int i = 0;i < len;i++){if(s[i] == 'R'){temp++;}if(s[i] == 'L'){temp--;}if(temp == 0){cou++;}}return cou;
}

運(yùn)行效率如下所示:


第9題:不用加號(hào)的加法

試題要求如下:

解答思路:

普通加法中:例如 13 + 8

如果我們先將對(duì)應(yīng)位子的數(shù)字相加,不考慮進(jìn)位的話,應(yīng)該是:

3 + 8 = 1 進(jìn)位為1

1 + 0 = 1 進(jìn)位為0

之后我們將個(gè)位的進(jìn)位1 與十位上的1相加

1 + 1 = 2 進(jìn)位為0

如果我們將此方法帶入到二進(jìn)制的運(yùn)算中是否可行呢?

13 => 1101

8 => 1000

回答(C語言):

int add(int a, int b){int sum = 0, carry = 0;while(b != 0) {sum = a^b;			// 異或計(jì)算未進(jìn)位的部分carry = (unsigned int)(a&b)<<1;	// 進(jìn)位部分a = sum;			// 保存未進(jìn)位部分,再次計(jì)算b = carry;			// 保存進(jìn)位部分,再次計(jì)算}return a;	// 最后無進(jìn)位,異或的結(jié)果即加法結(jié)果
}

運(yùn)行效率如下所示:


第10題:字符串相加

試題要求如下:

回答(C語言):

char * addStrings(char * num1, char * num2){char* buf = (char*)malloc(sizeof(char) * 5101);int i = strlen(num1) - 1, j = strlen(num2) - 1, k = 0, carry = 0;while(i >= 0 || j >= 0 || carry != 0){if(i >= 0) carry += num1[i--] - '0';if(j >= 0) carry += num2[j--] - '0';buf[k++] = carry % 10 + '0';carry /= 10;}buf[k] = '\0';i = 0;j = k - 1;while(i < j){char c = buf[i];buf[i] = buf[j];buf[j] = c;i++;j--;}return buf;
}

運(yùn)行效率如下所示:

總結(jié)

以上是生活随笔為你收集整理的力扣(LeetCode)刷题,简单题(第16期)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。