C语言刷数组题记录
讲解: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. 移除元素
暴力法(两层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语言刷数组题记录的更多相关文章
- c语言刷 队列题记录
622. 设计循环队列 https://blog.csdn.net/Galaxy_n/article/details/115978544 typedef struct { int *arrs; int ...
- c语言刷 链表题记录
61. 旋转链表 /** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode * ...
- c语言刷 DFS题记录
144. 二叉树的前序遍历 /** * Definition for a binary tree node. * struct TreeNode { * int val; * struct TreeN ...
- 用PHP语言刷OJ题
平常在学校都是用C,C++,Java来刷OJ题,把AC的题用不同的语言再AC一次,基本相当于翻译而已.看到学校的OJ支持提交PHP代码,于是尝试了一下. 首先,得会使用PHP,但是你如果在看这篇博客, ...
- 8.20~8.25刷散题记录 By cellur925
记录一些散题 / 价值不大但还是想记下来的题目 / 没正八经写博客的题目 8.24 Luogu P1508 沙雕题数字三角形的二维升级版,但是注意阅读理解,李大水牛从桌子最后一行下侧开始吃,而本题是自 ...
- c语言刷 设计题合计
355. 设计推特 #define MAX_LEN 512 struct User { int userId; int followee[MAX_LEN]; // 散列表,0/1,1表示这个user被 ...
- 刷题记录:[SUCTF 2019]CheckIn
目录 刷题记录:[SUCTF 2019]CheckIn 一.涉及知识点 1.利用.user.ini上传\隐藏后门 2.绕过exif_imagetype()的奇技淫巧 二.解题方法 刷题记录:[SUCT ...
- [BUUCTF-Pwn]刷题记录1
[BUUCTF-Pwn]刷题记录1 力争从今天(2021.3.23)开始每日至少一道吧--在这里记录一些栈相关的题目. 最近更新(2021.5.8) 如果我的解题步骤中有不正确的理解或不恰当的表述,希 ...
- SPOJ 刷题记录
按点赞数降序 297 二分 #include<bits/stdc++.h> using namespace std; #define fi first #define se second ...
随机推荐
- eureka的简单介绍,eureka单节点版的实现?eureka的自我保护?eureka的AP性,和CP性?
注意!!! 这是对上一篇博客 springcloud的延续,整个项目的搭建,来源与上一篇博客.一.什么是eureka? // eureka是一个注册中心,实现了dubbo中zookeeper的效果! ...
- Filter、Listener
Filter(过滤器) 概念: 对请求参数.请求头以及响应参数进行过滤.一般用于完成通用的操作,如:登录验证.统一编码处理.敏感字符过滤.... 代码: public class FilterDemo ...
- tomcat访问所有的资源,都是用Servlet来实现的
感谢大佬:https://www.zhihu.com/question/57400909 tomcat访问所有的资源,都是用Servlet来实现的. 在Tomcat看来,资源分3种 静态资源,如css ...
- tabbar选中按钮的标题颜色和字体
@implementation XMGTabBarController /* 问题: 1.选中按钮的图片被渲染 -> iOS7之后默认tabBar上按钮图片都会被渲染 1.修改图片 2.通过代码 ...
- swoole错误“Uncaught Error: Class 'swoole_server' not found”的解决办法
如果你在执行swoole对应文件时,报下面的错误, PHP Fatal error: Uncaught Error: Class 'swoole_server' not found in /mnt/w ...
- Solution -「洛谷 P6577」「模板」二分图最大权完美匹配
\(\mathcal{Description}\) Link. 给定二分图 \(G=(V=X\cup Y,E)\),\(|X|=|Y|=n\),边 \((u,v)\in E\) 有权 \(w( ...
- Solution -「NOIOL-S 2021」「洛谷 P7470」岛屿探险
\(\mathcal{Description}\) Link. 给定序列 \(\{(a,b)_n\}\),\(q\) 组形如 \((l,r,c,d)\) 的询问,求 \[\Big|\{i\in ...
- 我们一起来学Shell - shell的循环控制
文章目录 Shell 循环之 for 语句 Shell 循环之 while 语句 Shell 循环之 until 语句 Shell 循环控制 break指令 continue 指令 exit 指令 s ...
- verification 提取差异点
提取出差异点 传统用例 项目A锁定的寄存器是regA,项目B的锁定功能的寄存器是regB,如果项目A用例中直接用 reg_model.regA.write(); reg_model.regA.read ...
- .Net Core Aop之IResourceFilter
一.简介 在.net core 中Filter分为一下六大类: 1.AuthorizeAttribute(权限验证) 2.IResourceFilter(资源缓存) 3.IActionFilter(执 ...