当前位置: 首页 > news >正文

智能建站网网站建设颐高上海街

智能建站网,网站建设颐高上海街,网站备案添加域名,网站开发工具特点总结本次刷题顺序是按照卡尔的代码随想录中给出的顺序 1047. 删除字符串中的所有相邻重复项 char* removeDuplicates(char* s) {int len strlen(s);char* tmp malloc(sizeof(char) * (len 1));int top -1, idx 0;while(idx < len) {if(top -1) tmp[top] s[idx];else {i…

本次刷题顺序是按照卡尔的代码随想录中给出的顺序

1047. 删除字符串中的所有相邻重复项

char* removeDuplicates(char* s) {int len = strlen(s);char* tmp = malloc(sizeof(char) * (len + 1));int top = -1, idx = 0;while(idx < len) {if(top == -1) tmp[++top] = s[idx];else {if(tmp[top] == s[idx]) top--;else tmp[++top] = s[idx];}idx++;}tmp[++top] = '\0';return tmp;
}

150. 逆波兰表达式求值

bool isNumber(char* ch) {if(strlen(ch) > 1 || '0' <= ch[0] && ch[0] <= '9') return true;else return false;
}int evalRPN(char** tokens, int tokensSize) {int* st = malloc(sizeof(int)* tokensSize);int idx = 0, top = -1;while(idx < tokensSize) {char* ch = tokens[idx];if(!isNumber(ch)){switch(ch[0]) {case '+': st[top - 1] += st[top]; top--; break;case '-': st[top - 1] -= st[top]; top--; break;case '*': st[top - 1] *= st[top]; top--; break;case '/': st[top - 1] /= st[top]; top--; break;}}else {st[++top] = atoi(ch);}idx++;}return st[top];
}

347. 前 K 个高频元素

/*** Note: The returned array must be malloced, assume caller calls free().*/typedef struct {int key;int value;UT_hash_handle hh;
}hash;typedef struct {int H_key;int H_value;
}Heap;Heap* obj;
int Heap_size;bool cmp(Heap obj1, Heap obj2) {return obj1.H_value < obj2.H_value;
}void swap(Heap* obj1, Heap* obj2) {Heap tmp = *obj1;*obj1 = *obj2;*obj2 = tmp;
}Heap H_Top() {return obj[1];
}void H_Pop() {obj[1] = obj[Heap_size--];int idx = 1, t_idx;while((idx << 1) <= Heap_size) {//当前结点有子结点时,继续循环t_idx = idx << 1;if(t_idx < Heap_size && cmp(obj[t_idx + 1], obj[t_idx])) t_idx++;if(cmp(obj[idx], obj[t_idx])) return;swap(&obj[t_idx], &obj[idx]);idx = t_idx;}
}void H_Push(hash x) {obj[++Heap_size].H_key = x.key;obj[Heap_size].H_value = x.value;int idx = Heap_size, t_idx;while(idx > 1) {t_idx = idx >> 1;if(cmp(obj[t_idx], obj[idx])) return;swap(&obj[t_idx], &obj[idx]);idx = t_idx;}
}int* topKFrequent(int* nums, int numsSize, int k, int* returnSize) {hash* ha = NULL, * tmp1, * tmp2;int idx = 0;while(idx < numsSize) {//将数据信息存入哈希表HASH_FIND_INT(ha, &nums[idx], tmp1);if(tmp1 == NULL) {tmp1 = malloc(sizeof(hash));tmp1->key = nums[idx];tmp1->value = 1;HASH_ADD_INT(ha, key, tmp1);}else {tmp1->value++;}idx++;}obj = malloc(sizeof(Heap) * (k + 1));Heap_size = 0;Heap mid;HASH_ITER(hh, ha, tmp1, tmp2) {if (Heap_size == k) {mid = H_Top();if (mid.H_value < tmp1->value) {H_Pop();H_Push(*tmp1);}} else {H_Push(*tmp1);}}// 返回结果*returnSize = k;int* ret = malloc(sizeof(int) * k);for (int i = 0; i < k; i++) {mid = H_Top();H_Pop();ret[i] = mid.H_key;}return ret;
}

栈比较适合求解括号匹配、字符去重、逆波兰表达式

今天刷题,顺带复习了哈希表和小根堆的内容。小根堆和大根堆的思维框架是完全二叉树,所以使用数组实现小根堆时,有骚操作,在调整过程中,很妙,多看几遍H_Pop和H_Push的代码,好好体会

写这个系列的博客主要是给自己一个坚持刷题的理由,今天是第十天,感觉敲代码的流畅度有所提高,虽然思维上没有质变,但是相信坚持下去一定会有更大的收获,奥里给!

http://www.yayakq.cn/news/99515/

相关文章:

  • 河南推广网站昆山商城网站建设
  • 知乎网站怎么做推广博客 wordpress主题
  • 推广 电子商务网站建设专注于网络推广及网站建设
  • 电子商务企业网站建设发展论文百度seo优化公司
  • 沈阳做网站 智域网站建设和维护的职责
  • 淅川微网站建设wordpress更改电子邮箱验证功能
  • 企业网站排名提升软件建立自己网站
  • 做网站页面遇到的问题山东川畅科技网站设计
  • 国内优秀门户网站设计不愁销路的小型加工厂项目年入百万
  • 网站开发人员结构摄影作品集
  • 宁波专业做网站的公司有哪些市场调研的内容
  • 用aspx做的网站辽宁seo推广公司
  • 营销网站建设哪家快辽宁建设工程信息网专家
  • 毕业设计做网站还是系统seo营销推广费用
  • 求个网站这么难吗2021年微信的网站怎么做的
  • 国外做海报的网站百度官网登录
  • 上海专业网站建站哈尔滨网站建设公司oeminc
  • 建设网站有哪些内容杭州网站建设公司官网
  • 深圳建网站哪家好广州网络营销品牌
  • 佛山企业模板建站四川网站建设外包业务
  • 网站设计师联盟域名出售
  • 网站开发流程简述网站建设的步骤是什么意思
  • 优秀html5网站展览展示展厅设计
  • 网站生成静态慢原因徐州网站建设 和信
  • 中国建设銀行网站投诉电话wordpress编辑我
  • 北京市城市建设档案馆网站首页乐亭网站建设
  • 深圳市交易建设工程交易服务中心网站网站2级页面怎么做
  • win8风格手机网站模板网页设计师专业培训
  • 免费推广网址大全网站首页优化模板
  • 婚纱网站设计图免费咨询个税