C语言每日一题
66. 加一
/**
* Note: The returned array must be malloced, assume caller calls free().
*/ /*
从后向前(从个位)开始+1,逢九进一,不为九时结束,全为九时数组长度加一
解法如下: 特别要注意的是returnSize,这个代表返回指针的长度,要不上层代码不知道要取多少个
*/
int* plusOne(int* digits, int digitsSize, int* returnSize)
{
for (int i = digitsSize - 1; i >= 0; i--) {
if (digits[i] == 9) {
digits[i] = 0;
} else {
digits[i]++;
*returnSize = digitsSize;
return digits;
}
} int *res = malloc(sizeof(int) * (digitsSize + 1));
memset(res, 0, sizeof(int) * (digitsSize + 1));
*returnSize = digitsSize + 1;
res[0] = 1;
return res;
}
735. 行星碰撞
/**
* Note: The returned array must be malloced, assume caller calls free().
*/
int* asteroidCollision(int* asteroids, int asteroidsSize, int* returnSize)
{
*returnSize = 0;
if (asteroids == NULL) {
return NULL;
} int *res = malloc(sizeof(int) * asteroidsSize);
int idx = 0;
for (int i = 0; i < asteroidsSize; i++) {
res[idx++] = asteroids[i];
// 碰撞条件:左正右负
while (idx >= 2 && res[idx - 2] > 0 && res[idx - 1] < 0) {
int left = res[idx - 2];
int right = res[idx - 1];
if (abs(left) == abs(right)) {
idx -= 2;
} else if (abs(left) < abs(right)) {
res[idx - 2] = right;
idx--;
} else {
idx--;
}
}
} *returnSize = idx;
return res;
}
3. 无重复字符的最长子串
typedef struct {
int c; // 要用int
int value;
UT_hash_handle hh;
} hashTable;
hashTable *g_hash = NULL;
hashTable* FindNode(int ic)
{
hashTable* tmp = NULL;
HASH_FIND_INT(g_hash, &ic, tmp);
return tmp;
}
void AddNode(int ic)
{
hashTable *it = FindNode(ic);
if (it == NULL) {
it = malloc(sizeof(hashTable));
it->c = ic;
HASH_ADD_INT(g_hash, c, it);
}
it->value = 1;
}
void DelNode(int ic)
{
hashTable *it = FindNode(ic);
if (it != NULL) {
HASH_DEL(g_hash, it);
it->value = 0;
free(it);
}
}
void ClearAllNode()
{
hashTable *curr, *tmp;
HASH_ITER(hh, g_hash, curr, tmp) {
HASH_DEL(g_hash, curr);
free(curr);
}
}
int lengthOfLongestSubstring(char * s)
{
if (s == NULL) {
return 0;
}
if (s[0] == '\0') {
return 0;
}
int start = 0;
int end = 0;
int max = 0;
int subLen = 0;
while (s[end] != '\0') {
if (FindNode((int)s[end]) == NULL) {
AddNode((int)s[end]);
subLen = end - start + 1;
max = subLen > max ? subLen : max;
end++;
} else {
DelNode((int)s[start]);
start++;
}
}
ClearAllNode();
return max;
}
C语言每日一题的更多相关文章
- C语言每日一题之No.1
鉴于在学校弱弱的接触过C,基本上很少编程,C语言基础太薄弱.刚好目前从事的是软件编程,难度可想而知.严重影响工作效率,已无法再拖下去了.为此,痛下决心恶补C语言.此前只停留在看书,光看好像也记不住,C ...
- C语言每日一题之No.9
再做决定之前,我还是做好自己该做的.我不希望几年后会悔恨自己为什么在最该努力的时候不愿意吃苦.尊敬的女王陛下,请接题: 一.题目:有已按升序排好顺序的字符串a,编写程序将字符串s中的每个字符按升序的规 ...
- C语言每日一题之No.8
正式面对自己第二天,突然一种强烈的要放弃的冲动,在害怕什么?害怕很难赶上步伐?害怕这样坚持到底是对还是错?估计是今天那个来了,所以身体激素有变化导致情绪起伏比较大比较神经质吧(☆_☆)~矮油,女人每个 ...
- C语言每日一题之No.4
这几天老大也没安排我什么项目,于是想正好趁着空补C.当然,是利用晚上加班时间,白天正常上班时间还是学习公司的平台. 今儿个突然弱弱的感觉到在公司补C是件很低级的事情,哪怕是在加班时间都会被喷,因为大家 ...
- C语言每日一题之No.3
几天下来,感慨学习要坚持下来真的是件很难的事,本来说了每天一题,可是毕竟这是个细活,需要用心雕琢,有时候真的不能当天拿下来>_<.虽然说只是一题,却涉及到很多小细节,慢慢的琢磨直至完全摸透 ...
- C语言每日一题之No.12
文件操作知识:如何将一个文件的内容读取到另一个文件里? fread函数和fwrite函数 1.函数功能 用来读写一个数据块. 2.一般调用形式 fread(buffer,count,siz ...
- C语言每日一题之No.7
今天是正式第一天在现有的世界里与自己相处,你再也没有另一个世界可以躲避了.终于要自己面对自己了,一个人要真实的面对自己的灵魂总是痛苦的.从学校到社会的环境转换,现实与理想的冲突,个人价值观和社会价值观 ...
- C语言每日一题之No.6
人总要战胜内心的懦弱的,我不能一直这么缩在里边.终究向自己发出了挑战,还是会伤心的时候,发愣的时候.如果可以,我也希望像盗梦空间的女主一直沉在两个人的梦里永远不要醒来.可是,我们谁又能抗拒时间呢?这雨 ...
- C语言每日一题之No.5
总在想,但凡编程基础正常点,都不至于惨败到这个地步.也像大多数人毕业出来,新鲜的第一份工作,如果做得好还可以略有成就感,做得一般还有提升的空间,但至少不至于像我这样基本没基础的被鄙视得一塌糊涂,被外界 ...
- C语言每日一题之No.2
题目:已知三个整型数8,12,6,按公式s=a+b*c计算,并显示结果 思路:定义三个整型变量a,b,c 定义一个变量s用来保存运算结果 输出 程序: #include <stdio.h> ...
随机推荐
- 『无为则无心』Python基础 — 41、Python中文件的读写操作(一)
目录 1.文件操作步骤 2.文件的读写操作 (1)文件的打开 (2)打开文件模式 (3)获取一个文件对象 (4)关于文件路径 1.文件操作步骤 当我们要读取或者写入文件时,我们需要打开文件,在操作完毕 ...
- Mac iterm2 配色以及终端大小写敏感解决方案
iterm2是mac下非常好用的一款终端.但默认的配色实在不好用,经过一翻搜索终于找到了比较满意的,以下贴出博主的解决方案 配色 首先修改 ~/.bash_profile 加入一下代码 #enable ...
- Nginx+Tomcat负载均衡、动静分离群集
Nginx+Tomcat负载均衡.动静分离群集 目录 Nginx+Tomcat负载均衡.动静分离群集 一.Tomcat 1. Tomcat简介 2. Tomcat重要目录 二.Nginx负载均衡原理 ...
- C++实现对Json数据的友好处理
背景 C/C++客户端需要接收和发送JSON格式的数据到后端以实现通讯和数据交互.C++没有现成的处理JSON格式数据的接口,直接引用第三方库还是避免不了拆解拼接.考虑到此项目将会有大量JSON数据需 ...
- docker基础——1.原理解读
1. 相关内核知识 docker本质上是宿主机上的进程. 通过namespace实现资源隔离,通过cgroups实现资源限制,通过写时复制机制copy-on-write实现高效文件操作. 依赖kern ...
- FLink迟到数据的处理之三
Flink迟到的数据更新窗口计算结果,窗口销毁后的迟到数据输出到测输出流 主程序: //TODO 使用迟到的数据更新窗口的计算结果 public static void main(String[] a ...
- 基于TI DSP TMS320C6678、Xilinx K7 FPGA XC7K325T的高速数据处理核心板
一.板卡概述 该DSP+FPGA高速信号采集处理板由我公司自主研发,包含一片TI DSP TMS320C6678和一片Xilinx FPGA K7 XC72K325T-1ffg900.包含1个千兆网口 ...
- 「Python实用秘技05」在Python中妙用短路机制
本文完整示例代码及文件已上传至我的Github仓库https://github.com/CNFeffery/PythonPracticalSkills 这是我的系列文章「Python实用秘技」的第5期 ...
- Solution -「洛谷 P6577」「模板」二分图最大权完美匹配
\(\mathcal{Description}\) Link. 给定二分图 \(G=(V=X\cup Y,E)\),\(|X|=|Y|=n\),边 \((u,v)\in E\) 有权 \(w( ...
- c++ istream_iterator ostream_iterator
istream_iterator/ostream_iterator void stream_iter_odd_even(const string &in_file, const string ...