力扣
陈肉圆
这个作者很懒,什么都没留下…
展开
-
力扣刷题笔记(35)
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 /* 二分法 */ int searchInsert(int *nums, int numsSize, int target) { int left = 0; int right = numsSize - 1; int medain; while(left <= right) { medain = ..原创 2021-10-20 21:14:26 · 90 阅读 · 0 评论 -
力扣刷题笔记(704)
#include<stdio.h> int search(int *nums, int numsSize, int target) { int s = 0; int e = numsSize -1; int median; while(s != e) { median = (e - s)/2 + s; if(target > nums[median]) { s = median + 1; } else if(target < nums[...原创 2021-10-20 14:17:08 · 107 阅读 · 0 评论 -
力扣刷题笔记(7)
/* 整数反转 */ #include<stdio.h> #include<limits.h> int reverse(int x) { int y = 0; while(x != 0) { if((y > INT_MAX/10) || (y < INT_MIN /10)) { return 0; } y = y*10 + x%10; x = x / 10; } return y; } int main() { ...原创 2021-10-13 21:12:16 · 94 阅读 · 0 评论 -
力扣刷题笔记(27)
/* 给一个数组nums和一个值val 移除所有数值等于val的元素 */ #include<stdio.h> int removeElement(int *nums, int numsSize, int val) { for(int i = 0; i < numsSize; ) { if(nums[i] == val) { if(nums[numsSize -1] == val) { numsSize -= 1; continue; ...原创 2021-10-12 20:41:18 · 99 阅读 · 0 评论 -
力扣刷题笔记(70)
/* 爬楼梯爬到n阶才能到楼顶 每次只能爬1或2个台阶,有多少钟不同的方法可以爬到楼顶? */ #include<stdio.h> int climbStairs(int n) { int arr[204800] = {0}; arr[1] = 1; arr[2] = 2; if(n == 1 || n == 2) { return arr[n]; } int i = 3; for(; i < n+1 ; i++) { arr[i] = arr...原创 2021-10-12 14:05:18 · 92 阅读 · 0 评论 -
力扣刷题笔记(20)
括号匹配 #include<stdio.h> struct stack_t { int up;//指向栈顶 char arr[1024]; }; int isValid(char *s) { struct stack_t sk; sk.up = 0; for(int i = 0; s[i] != 0; i++) { if((s[i] == '(') || (s[i] == '{') || (s[i] == '[')) { sk.arr[sk.up++] =原创 2021-09-24 21:51:18 · 76 阅读 · 0 评论 -
力扣刷题笔记(14)
编写一个函数来查找字符串最长公共前缀。 #include<stdio.h> char *longestCommonPrefix(char strs[1024][1024], int strsSize) { for(int i = 0; i < strsSize; i++) { for(int j = 0; strs[0][j] != 0; j++) { if(strs[0][j] == NULL || strs[i][j] == NULL) { ..原创 2021-09-24 16:36:00 · 84 阅读 · 0 评论 -
力扣刷题笔记(3)
/* 给定一个字符串s 找出不含有重复字符的 最长 子串 --------------------------------- 思路:遍历字符串,找到重复的字符停止遍历并记录子串长度 继续向下遍历,重复上面的内容(找到重复的字符停止遍历并记录最大子串长度) 直至'\0'结束遍历,返回最大子串长度 */ #include<stdio.h> #include<string.h> int lengthOfLongestSubstring(char *s) { int ...原创 2021-09-18 10:10:40 · 82 阅读 · 0 评论 -
力扣刷题笔记(13)
/* 给定一个罗马数字,将其转换成整数。 输入确保在1~3999的范围内 */ #include<stdio.h> int romanToInt(char *s) { int arr[88] = {0}; arr['I'] = 1; arr['V'] = 5; arr['X'] = 10; arr['L'] = 50; arr['C'] = 100; arr['D'] = 500; arr['M'] = 1000; int sum = 0; char *p...原创 2021-09-16 20:49:01 · 65 阅读 · 0 评论 -
力扣刷题笔记(9)
/* 回文数:正序和倒序读都是一样的整数 eg:12321,252,75657,756657 判断一个整数是否是回文数 是返回true,否返回false */ #include<stdio.h> #include<stdbool.h> #include<stdlib.h> #include<string.h> bool isPalindrome(int x) { printf("bool ok\n"); char string[10];...原创 2021-09-15 21:02:13 · 97 阅读 · 0 评论 -
力扣刷题笔记(1)
/* 整数数组num和一个整数目标值target 在整数数组中找出 和 为target的两个整数 返回下标 */ #include<stdio.h> #include<stdlib.h> //方法1:定义一个全局变量,作用域在全局,不会被释放 //int arr[2]; int *twoSum(int *num, int numsSize, int target, int *returnSize) { //方法2:定义一个局部指针,开辟需要的内存 int *arr;原创 2021-09-14 21:28:59 · 70 阅读 · 0 评论