日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

leetcode-C语言代码练习

發布時間:2025/3/21 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 leetcode-C语言代码练习 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

★★★ 個人博客導讀首頁—點擊此處 ★★★

文章目錄

      • leetcode C語言練習
        • 1. 兩數之和
        • 2. 兩數相加
        • 141. 環形鏈表
      • C語言練習
        • 1、求兩個數字之間的所有素數

leetcode C語言練習

1. 兩數之和

給定一個整數數組 nums 和一個目標值 target,請你在該數組中找出和為目標值的那 兩個 整數,并返回他們的數組下標。

你可以假設每種輸入只會對應一個答案。但是,數組中同一個元素不能使用兩遍。

示例:
給定 nums = [2, 7, 11, 15], target = 9
因為 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]

/*** Note: The returned array must be malloced, assume caller calls free().*/ int* twoSum(int* nums, int numsSize, int target, int* returnSize){int i, min = nums[0], max = nums[0];int *map;int *twosum;int dis;int lookfornum;//找出最大值和最小值for (i = 0; i < numsSize; i++) {if (nums[i] > max) max = nums[i];if (nums[i] < min) min = nums[i];}//因為map的下標為距離,因此map的大小設為最大距離+1即可。map = (int*)calloc((max - min + 1), sizeof(int));twosum = (int*)malloc(sizeof(int) * 2);*returnSize = 2;// 每掃描一個nums元素,將該元素的下標和距離記錄在map中for (i = 0; i < numsSize; map[nums[i] - min] = i+1,i++) {lookfornum = target - nums[i];if (lookfornum<min || lookfornum>max)continue;dis = lookfornum - min;// 判斷目標距離上是否已經存有數值if (map[dis] != 0) {twosum[1] = i;twosum[0] = map[dis]-1;break;}}return twosum; }

2. 兩數相加

給出兩個 非空 的鏈表用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式存儲的,并且它們的每個節點只能存儲 一位 數字。

如果,我們將這兩個數相加起來,則會返回一個新的鏈表來表示它們的和。

您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。

輸入:(2 -> 4 -> 3) + (5 -> 6 -> 4)
輸出:7 -> 0 -> 8
原因:342 + 465 = 807

/*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/struct ListNode* addTwoNumbers(struct ListNode* l1, struct ListNode* l2){struct ListNode *p = l1;struct ListNode *q = l2;struct ListNode *head = NULL;struct ListNode *phead = head;struct ListNode *t = NULL;int jinwei = 0;while(1){if(p == NULL && q == NULL && jinwei == 0){break;}t = (struct ListNode *)malloc(sizeof(struct ListNode));if(p == NULL || q == NULL){if(p != NULL || q != NULL)t->val = (p)?p->val:q->val;elset->val = 0;t->val += jinwei;}else{t->val = p->val + q->val + jinwei; }jinwei = (t->val >= 10)?1:0;t->val = t->val % 10;t->next = NULL;if(phead){phead->next = t;phead = t;} else{head = t;}phead = t;if(p)p = p->next;if(q)q = q->next;}return head; }

141. 環形鏈表

給定一個鏈表,判斷鏈表中是否有環

/*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/ bool hasCycle(struct ListNode *head) {struct ListNode* slow = head;struct ListNode* fast = head;while(fast && fast->next){slow = slow->next;fast = fast->next->next;if(slow == fast)return true;}return false; }

C語言練習

1、求兩個數字之間的所有素數

#include <stdio.h>int is_prime(int a) {int i;if(a<=1)return 0;if(a==2)return 1;for(i=2;i<=a-1;i++){if(a%i == 0)return 0;}return 1; }void print_prime(int start , int end) {int i,j;int count = 1;for(i=start;i<=end;i++){if(is_prime(i) == 1){printf("%d ",i);if(count++ % 16 == 0)printf("\n");}}printf("\n");}int main() {print_prime(0,2000);return 0; }

2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53
59 61 67 71 73 79 83 89 97 101 103 107 109 113 127 131
137 139 149 151 157 163 167 173 179 181 191 193 197 199 211 223
227 229 233 239 241 251 257 263 269 271 277 281 283 293 307 311
313 317 331 337 347 349 353 359 367 373 379 383 389 397 401 409
419 421 431 433 439 443 449 457 461 463 467 479 487 491 499 503
509 521 523 541 547 557 563 569 571 577 587 593 599 601 607 613
617 619 631 641 643 647 653 659 661 673 677 683 691 701 709 719
727 733 739 743 751 757 761 769 773 787 797 809 811 821 823 827
829 839 853 857 859 863 877 881 883 887 907 911 919 929 937 941
947 953 967 971 977 983 991 997 1009 1013 1019 1021 1031 1033 1039 1049
1051 1061 1063 1069 1087 1091 1093 1097 1103 1109 1117 1123 1129 1151 1153 1163
1171 1181 1187 1193 1201 1213 1217 1223 1229 1231 1237 1249 1259 1277 1279 1283
1289 1291 1297 1301 1303 1307 1319 1321 1327 1361 1367 1373 1381 1399 1409 1423
1427 1429 1433 1439 1447 1451 1453 1459 1471 1481 1483 1487 1489 1493 1499 1511
1523 1531 1543 1549 1553 1559 1567 1571 1579 1583 1597 1601 1607 1609 1613 1619
1621 1627 1637 1657 1663 1667 1669 1693 1697 1699 1709 1721 1723 1733 1741 1747
1753 1759 1777 1783 1787 1789 1801 1811 1823 1831 1847 1861 1867 1871 1873 1877
1879 1889 1901 1907 1913 1931 1933 1949 1951 1973 1979 1987 1993 1997 1999

總結

以上是生活随笔為你收集整理的leetcode-C语言代码练习的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。