LeetCode
不会写代码的美年达
这个作者很懒,什么都没留下…
展开
-
【LeetCode】【链表】206. 反转链表:3种方法实现:递归(调用自身)、迭代(直接链表操作)、数组法(先保存数组 再操作)
递归调用:反转单向链表/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */ struct ListNode* m_phead=NULL;struct ListNode* reverseList(struct L...原创 2018-05-17 20:08:37 · 228 阅读 · 0 评论 -
【LeetCode】【标准函数库】待补充......
#include<math.h> INT_MAX INT_MINint max= pow(2,31);#include<string.h>strncmp(str1,str2,len) //字符串比较函数:如果字符串s1与s2的前size个字符相同,函数返回值为0#include<string.h>int *a = (int*) malloc( sizeof(i...原创 2018-05-16 21:51:08 · 640 阅读 · 0 评论 -
【LeetCode】int的最大范围 表示方法
int类型:-2147483648 ~ 21474836471.用已定义的库函数文件表示#include<limits.h> #define INT_MAX 2147483647 #define INT_MIN (-INT_MAX - 1)这里没有简单地将INT_MIN赋值成-2147483647,是因为-2147483648对于编译器而言是个表达式,而2147483648...原创 2018-05-16 18:17:23 · 1875 阅读 · 0 评论 -
【LeetCode】检查一个10位数组,是否溢出int类型的数据
检查一个10位数组,是否溢出int类型的数据3种方法:1.检查后9位2.检查前9位3.用long类型计算结果 然后比较 //检验10位大小溢出问题 //法1:int类型, //判断 后9位 ? INT_MAX的后9位 //len>10 溢出 //len==10, 最高位>2时,溢出 最高位==2时,正数resu...原创 2018-05-16 17:51:53 · 458 阅读 · 0 评论 -
关于pow()在printf()中 直接 用%d输出的问题
关于pow()在printf()中 直接 用%d输出的问题2004年11月30日 09:51:00阅读数:6908原文:http://purec.binghua.com/Article/Class1/Class2/200411/368.html今天收到一封信,里面提出了这样一个有意思的问题#include <math.h>#include <stdio.h>int main...转载 2018-05-16 09:16:42 · 584 阅读 · 0 评论 -
【leedcode】【动态规划】70.爬楼梯
70.爬楼梯假设你正在爬楼梯。需要 n 步你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1. 1 步 + 1 步2. 2 步示例 2:输入: 3输出: 3解释: 有三种方法可以爬到楼顶。1. 1 步 + 1 步 + 1 步2. 1 步 + 2 步3. 2 步...原创 2018-05-26 15:26:51 · 213 阅读 · 0 评论 -
【LeetCode】【数组】136. 只出现一次的数字——先排序后比较 / Math异或
只出现一次的数字给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例 2:输入: [4,1,2,1,2]输出: 4//法1:先排序,后比较 o(nlogn)int cmp(const void *a,const void ...原创 2018-05-14 14:39:58 · 120 阅读 · 0 评论 -
【LeetCode】【数组】217.存在重复——检查数组中是否有重复的元素
存在重复给定一个整数数组,判断是否存在重复元素。如果任何值在数组中出现至少两次,函数返回 true。如果数组中每个元素都不相同,则返回 false。示例 1:输入: [1,2,3,1]输出: true示例 2:输入: [1,2,3,4]输出: false示例 3:输入: [1,1,1,3,3,4,3,2,4,2]输出: true法1:朴素解法1个1个比较时间复杂度o(n2):n*(n-1...原创 2018-05-14 11:41:47 · 290 阅读 · 0 评论 -
【LeetCode】【数组】189旋转数组 ————循环右移
旋转数组给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。示例 1:输入: [1,2,3,4,5,6,7] 和 k = 3输出: [5,6,7,1,2,3,4]解释:向右旋转 1 步: [7,1,2,3,4,5,6]向右旋转 2 步: [6,7,1,2,3,4,5]向右旋转 3 步: [5,6,7,1,2,3,4]示例 2:输入: [-1,-100,3,99] ...原创 2018-05-13 20:55:35 · 2402 阅读 · 0 评论 -
【LeetCode】指针和数组,都能给函数传递参数,返回有效参数
//方式1:用指针申请空间 //int *buf=(int*)malloc(sizeof(int)*100000); //数组 //int *pos=(int*)malloc(sizeof(int)); //保存数组的角标 //*pos = 0; //方式2:用数组空间 int buf[100000]; int pos[1] ...原创 2018-05-19 12:34:31 · 691 阅读 · 0 评论 -
【LeetCode】1.两数之和
/** * Note: The returned array must be malloced, assume caller calls free(). *///#include <string.h>int* twoSum(int* nums, int numsSize, int target) { int i = 0; int j = 0; ...原创 2018-05-12 11:34:34 · 511 阅读 · 0 评论 -
char *p char p[] sizeof strlen || int *p int p[] 无法用
char str[20]="0123456789"; int a=strlen(str); //a=10; //字符串长度int b=sizeof(str); //而b=20; //预分配空间 sizeof(...)是运算符,在头文件中typedef为unsigned int,其值在编译时即计算好了,因此sizeof不能用来返回动态分配的内存空间的大小。所以sizeof返回类...原创 2018-05-12 10:56:04 · 251 阅读 · 0 评论 -
*与++的优先级关系
前缀递增递减和*优先级相同,从右到左;后缀递增递减比前缀优先级高,从左到右。比如12int arr[5] = { 1,3,5,7,9 };int *p = arr;*++p:p先自+,然后*p,最终为3——马上改变指针,*下一个指针*p++:值为arr[0],即1,该语句执行完毕后,p指向arr[1] ————之后改变指针,*原数据,指针++*(p++):效果等同于*p++ ——之后改...原创 2018-05-11 17:54:49 · 4307 阅读 · 0 评论 -
【LeetCode】【二分法】防止溢出 mid =left+(right-left)/2; while(left《right)【left,mid】【mid+1,right】
278. 第一个错误的版本你是产品经理,目前正在带领一个团队开发新的产品。不幸的是,你的产品的最新版本没有通过质量检测。由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本都是错的。假设你有 n 个版本 [1, 2, ..., n],你想找出导致之后所有版本出错的第一个错误的版本。你可以通过调用 bool isBadVersion(version) 接口来判断版本号 version ...原创 2018-05-23 20:44:00 · 5735 阅读 · 0 评论