讲解:https://mp.weixin.qq.com/s/weyitJcVHBgFtSc19cbPdw

二分法:

704. 二分查找

int search(int* nums, int numsSize, int target)
{
int left = 0;
int right = numsSize;
while (left < right) {
// int cur = (left + right) / 2;
int cur = left + (right - left) / 2;
if (nums[cur] == target) {
return cur;
} else if (nums[cur] > target) {
right = cur;
} else {
left = cur + 1;
}
}
return -1;
}

27. 移除元素

https://mp.weixin.qq.com/s?__biz=MzUxNjY5NTYxNA==&mid=2247484304&idx=1&sn=ad2e11d171f74ad772fd23b10142e3f3&scene=21#wechat_redirect

暴力法(两层for循环)和 双指针

int removeElement(int* nums, int numsSize, int val)
{
for (int i = 0; i < numsSize; i++) {
if (nums[i] == val) {
// 数组整体向前移一步
for (int j = i; j < numsSize - 1; j++) {
nums[j] = nums[j + 1];
}
numsSize--;
i--;
}
}
return numsSize;
}

双指针(快慢指针)

int removeElement(int* nums, int numsSize, int val)
{
int slow = 0;
for (int fast = 0; fast < numsSize; fast++) {
if (nums[fast] != val) {
nums[slow++] = nums[fast];
}
}
return slow;
}

977. 有序数组的平方

/**
* Note: The returned array must be malloced, assume caller calls free().
*/ int Double(int a)
{
return a * a;
} int* sortedSquares(int* nums, int numsSize, int* returnSize)
{
int left = 0;
int right = numsSize - 1;
int index = right;
*returnSize = numsSize;
int *res = (int *)malloc(sizeof(int) * numsSize); while (left <= right) {
if (Double(nums[left]) <= Double(nums[right])) {
printf("1 %d <= %d index=%d\n", Double(nums[left]), Double(nums[right]), index);
res[index--] = Double(nums[right]);
right--;
} else {
printf("2 %d > %d index=%d\n", Double(nums[left]), Double(nums[right]), index);
res[index--] = Double(nums[left]);
left++;
}
}
return res;
}

209. 长度最小的子数组

滑动窗口

int minSubArrayLen(int target, int* nums, int numsSize)
{
int slow = 0;
int fast = 0;
int sum = 0;
int res = 1e7;
for (int fast = 0; fast < numsSize; fast++) {
sum += nums[fast];
while (sum >= target) {
int len = fast - slow + 1;
res = res < len ? res : len;
// sum = 0; 这是不对的!
printf("slow:%d\n", slow);
sum -= nums[slow++];
}
} return res == 1e7 ? 0 : res;
}

C语言刷数组题记录的更多相关文章

  1. c语言刷 队列题记录

    622. 设计循环队列 https://blog.csdn.net/Galaxy_n/article/details/115978544 typedef struct { int *arrs; int ...

  2. c语言刷 链表题记录

    61. 旋转链表 /** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode * ...

  3. c语言刷 DFS题记录

    144. 二叉树的前序遍历 /** * Definition for a binary tree node. * struct TreeNode { * int val; * struct TreeN ...

  4. 用PHP语言刷OJ题

    平常在学校都是用C,C++,Java来刷OJ题,把AC的题用不同的语言再AC一次,基本相当于翻译而已.看到学校的OJ支持提交PHP代码,于是尝试了一下. 首先,得会使用PHP,但是你如果在看这篇博客, ...

  5. 8.20~8.25刷散题记录 By cellur925

    记录一些散题 / 价值不大但还是想记下来的题目 / 没正八经写博客的题目 8.24 Luogu P1508 沙雕题数字三角形的二维升级版,但是注意阅读理解,李大水牛从桌子最后一行下侧开始吃,而本题是自 ...

  6. c语言刷 设计题合计

    355. 设计推特 #define MAX_LEN 512 struct User { int userId; int followee[MAX_LEN]; // 散列表,0/1,1表示这个user被 ...

  7. 刷题记录:[SUCTF 2019]CheckIn

    目录 刷题记录:[SUCTF 2019]CheckIn 一.涉及知识点 1.利用.user.ini上传\隐藏后门 2.绕过exif_imagetype()的奇技淫巧 二.解题方法 刷题记录:[SUCT ...

  8. [BUUCTF-Pwn]刷题记录1

    [BUUCTF-Pwn]刷题记录1 力争从今天(2021.3.23)开始每日至少一道吧--在这里记录一些栈相关的题目. 最近更新(2021.5.8) 如果我的解题步骤中有不正确的理解或不恰当的表述,希 ...

  9. SPOJ 刷题记录

    按点赞数降序 297 二分 #include<bits/stdc++.h> using namespace std; #define fi first #define se second ...

随机推荐

  1. DBeaver下载安装与连接MySQL数据库

    一.Dbeaver下载 官网下载地址:Download | DBeaver Community 点击"Windows 64 bit (installer)"即可进行下载. 二.Db ...

  2. Codeforces Round #740 Div. 2

    题目跳转链接 A. Simply Strange Sort 题意 定义一个函数\(f_{i}\) : 如果\(a_i \ge a_{i+1}\) swap(\(a_i\) \(a_{i+1}\)) 定 ...

  3. EKS助力小白实践云原生——通过k8s部署wordpress应用

    目前云原生在大厂已经有了充分的实践,也逐渐向小厂以及非互联网公司推广.适逢12月20日,腾讯云原生[燎原社]精心打造了云原生在线技术工坊,让零基础的同学也能快速入门和实践 Docker 和 Kuber ...

  4. CentOS 7中的系统语言包及UTF-8、en_US.UTF-8和zh_CN.UTF-8的区别

    UTF-8.en_US.UTF-8和zh_CN.UTF-8的区别 en_US.UTF-8.zh_CN.UTF-8叫做字符集,就是说'A'.'B'.'中'.'国'等对应的整数值,en_US.UTF-8只 ...

  5. iconv(gb2312<->utf-8)

    转载请注明来源:https://www.cnblogs.com/hookjc/ unix下安装PHP的module,需要重新编译PHP,Windows下安装模板,只需将php.ini里的配置打开相应的 ...

  6. Linux系统安装(CentOS-7)详细操作步骤

    Linux系统安装(CentOS-7)详细操作步骤 一.创建虚拟机 首先创建一个虚拟机,然后才能在虚拟机里面安装系统. 第一步,创建虚拟机的向导 第二步,兼容性默认即可. 第三步,我们等创建完虚拟机后 ...

  7. selenium+python 处理只读日期控件的2种方法

    前言 有时候测试过程中会遇到日期控件场景,这时候需要特殊处理,下文以12306网站为例 1.处理方式 通常是通过js去除只读属性(2种方法),然后通过send_keys重新写值 from time i ...

  8. Java高频面试题70道

    1.作用域public,private,protected,以及不写时的区别? 答:区别如下: 作用域  当前类 同一packag 子孙类 其他package public √ √ √ √ prote ...

  9. 使用helm安装ingress,实现用域名的方式访问k8s内部应用

    k8s集群版本 k8s集群版本是1.22 提前部署好nginx服务和创建好svc deployment方式部署的nginx服务,1个副本 创建的服务 通过服务可以代理到nginx服务 curl 10. ...

  10. windows清理用户痕迹

    1.日志管理器的基本使用 在这里创建自定义视图是非常重要的 在设置自定义视图不必设置的事件日志选项太多,可以按日志也可以按源进行设置,根据自己的情况来做决定 在cmd下可以使用wevtutil cl ...