LeetCode的medium题集合(C++实现)十二
来源:互联网 发布:杭州网络 编辑:程序博客网 时间:2024/05/16 09:36
1 Sqrt(x)
Implement int sqrt(int x).Compute and return the square root of x.
因为这里都是整数,可以直接采用二分法求解
int mySqrt(int x) { if (x <= 1) return x; int begin = 1, end =x, mid = 0; while (begin<=end) { mid = (begin + end) / 2; if (mid<x / mid) //不要用乘法判断,否则会越界 { begin = mid + 1; } else if (mid>x / mid) { end = mid - 1; } else if (mid == x / mid) return mid; } return end; }
牛顿迭代法:设r是
当第
这里记
int mySqrt(int x) { if (x == 0) return 0; double last; double res = 1; do { last = res; res = x / (2 * last) + last / 2.0; } while (abs(res - last) > 0.001); return int(res); }
2 Simplify Path
Given an absolute path for a file (Unix-style), simplify it.
用一个vector容器保存目录,当有多个’/’出现时去掉重复的,当出现’..’时是返回上一个目录,如果容器大小不为0,要去掉容器末尾的元素。
string simplifyPath(string path) { vector<string> res; int len=path.length(); string mid; int start=0; while(start<len) { while(path[start]=='/'&&start<len) start++; //去掉重复'/' while(path[start]!='/'&&start<len) { //记录下每一级目录 mid+=path[start]; start++; } if(mid=="."||mid=="") { mid.clear(); //进入下一次循环前,记得清空mid continue; } if(mid=="..") { if(res.size()>0) res.pop_back(); mid.clear(); continue; } res.push_back(mid); mid.clear(); } string result; int n=res.size(); for(int i=0;i<n;i++) { result=result+"/"+res[i]; } if(result=="") result="/"; return result; }
0 0
- LeetCode的medium题集合(C++实现)十二
- LeetCode的medium题集合(C++实现)一
- LeetCode的medium题集合(C++实现)二
- LeetCode的medium题集合(C++实现)三
- LeetCode的medium题集合(C++实现)四
- LeetCode的medium题集合(C++实现)五
- LeetCode的medium题集合(C++实现)六
- LeetCode的medium题集合(C++实现)七
- LeetCode的medium题集合(C++实现)八
- LeetCode的medium题集合(C++实现)九
- LeetCode的medium题集合(C++实现)十
- LeetCode的medium题集合(C++实现)十一
- LeetCode的medium题集合(C++实现)十三
- LeetCode的medium题集合(C++实现)十四
- LeetCode的medium题集合(C++实现)十五
- LeetCode的medium题集合(C++实现)十六
- LeetCode的medium题集合(C++实现)十七
- [leetcode]55. Jump Game ,C++/PYTHON实现,medium难度
- 在广播接收者中启动其它组件 73集
- 【书评:Oracle查询优化改写】第14章 结尾章
- linux新硬盘挂在到/home目录下
- 摆地摊到底能不能赚钱?
- 一起talk Vim吧(第二十二回:Vim大结局)
- LeetCode的medium题集合(C++实现)十二
- 数据结构——二叉树的操作
- C++leetcode一些常用函数,以备面试使用(不断更新)
- stanford cs106b mutual recursion demo
- LCM Challenge(暴力)
- python (7) 什么是迭代
- 谈如何将android studio项目转换成eclipse
- Doom3-BFG引擎-Review 1 (初始介绍)
- asa 5512 端口映射问题