c标准库:https://www.runoob.com/cprogramming/c-standard-library-assert-h.html
pow()函数: 计算a的x次方并返回给result
用法:
#include<math.h>
result = pow(a,x);
Qusetion:得出一个整数x的digit(位数)。
Example:x = 123,得digit = 3
for(i = 0;pow(10,i) < x;i++){}
digit = i;
struct ListNode* p, node;
node.next = head;
p = &node;
return node->next;
以上可以创建一个空的头结点,等同于下
struct ListNode* L = (struct ListNode*)malloc(sizeof(struct ListNode));
L->next = head;
return L->next;
int removeElement(int* nums, int numsSize, int val){}
为什么返回数值是整数,但输出的答案是数组呢?
请注意,输入数组是以“引用”方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。
你可以想象内部操作如下:
// nums 是以“引用”方式传递的。也就是说,不对实参作任何拷贝 int len = removeElement(nums, val); // 在函数里修改输入数组对于调用者是可见的。 // 根据你的函数返回的长度, 它会打印出数组中该长度范围内的所有元素。 for (int i = 0; i < len; i++) { print(nums[i]); }
struct ListNode* fast = head;
struct ListNode* slow = head;
while(fast != NULL && fast->next != NULL){
slow = slow->next;
fast = fast->next->next;
}
链表结点个数为奇数时,slow指向链表中间结点;
链表结点个数为偶数时,slow指向链表两个中间结点的后一个。
struct ListNode h = {0, head}; //设置一个头节点
struct ListNode* p = &h;//引用
return h.next;//调用结构体成员变量
LeetCode hash表的支持
https://support.leetcode-cn.com/hc/kb/article/1194343/
gcc 8.2 uthash.h文档
struct ListNode* l3 = malloc(sizeof(struct ListNode));
memset(l3, 0, sizeof(struct ListNode));//只初始化一个0?
struct ListNode **rec = (struct ListNode **)calloc(size, sizeof(struct ListNode *));
struct ListNode **rec = malloc(size*sizeof(struct ListNode));
rec = (struct ListNode **)realloc(rec, size * sizeof(struct ListNode *));
int** nums = (int**)malloc(sizeof(int*)*rewNums);
*nums = (int*)malloc(sizeof(int)*colNums);
int compare(const void* a, const void* b) {
return *(int*)a-*(int*)b;
}
qsort(nums,n,sizeof(nums[0]), compare);
"if" "#if" "#ifndef" "#ifdef"
以#开头的都是预编译指令,就是在正式编译之前,编译器做一些预处理的工作
#if 条件语句
程序段1 //如果条件语句成立,那么就编译程序段1
#endif
程序段2//如果条件不语句成立,那么就编译程序段2
#ifndef x//先测试x是否被宏定义过
#define 程序段1 //如果x没有被宏定义过,那么就编译程序段1
#endif
程序段2 //如果x已经定义过了则编译程序段2的语句,“忽视”程序段1。
#ifdef x //先测试x是否被宏定义过
程序段1 //如果x被宏定义过,那么就编译程序段1
#endif
程序段2 //如果x没有被定义过则编译程序段2的语句,“忽视”程序段1。
if就是判断语句,不是预编译指令
char s[MaxSize];
int len = strlen(s);//获取字符数组长度
int t = atoi(s);//字符串转整数
strcmp(s1,s2);//比较字符串s1,s2返回bool型