
刷题算法
文章平均质量分 79
Shwan_Ma
模式识别小硕,向大牛看齐!
展开
-
【基础算法】关于二分查找你不知道的事
一般来说,二分查找在学校里都会教过。但是写一个bug free的二分查找真的那么容易么,曾经有人统计过 就算是CMU的博士生写出来的二分查找也大多存在着各种各样的问题。1. 简单的二分查找竟然有这么多坑!// 最简单的二分查找int binarySearch(vector<int>& nums, int target){ int l = 0, r = nums.size()-1; // 1. 坑1 while(l<=r){ int mid = l + (r-l)/原创 2021-05-30 22:03:29 · 514 阅读 · 0 评论 -
【刷题算法】寻找岛的个数
昨晚听左神讲了一个很有意思的题。题目意思大概是:给定一个二维数组,所有位置的值不是0就是1。规定每个位置可以和它上下左右位置上的值相连。有一个叫做岛的概念,定义如下: 连成一片的1,如果周围都是0,那么这一片1,构成一个岛。求整张图上有多少个岛。例如: 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 1 0 0 1 1 1 0 0 0 1 0 0 1 1 0 0 0 0 0原创 2017-08-03 12:41:22 · 4328 阅读 · 2 评论 -
【刷题算法】不用+运算符求加法
题目来自于lintcode 第1题 A+B问题: 题目如下: 给出两个整数a和b, 求他们的和, 但不能使用 + 等数学运算符。 一般数值进行加法,比如两个数,A=9,B=7。 当进行十进制加法的时候, 1. 先算各个位数, 2. 然后得到进位, 3. 最终将进位加上前一位。由于不用加运算符,只能从位运算进行入手。由于我的自动化专业相关,立刻想到微机原理中的 加法器 。原创 2016-02-27 17:20:37 · 1003 阅读 · 0 评论 -
【刷题算法】斐波那契数列的应用
斐波那契以兔子繁殖为切入,提出一个古典问题: 有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 其数列是0、1、1、2、3、5、8、13、21、34、…… 在数学上,斐波纳契数列以如下被以递归的方法定义: F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n≥2,n∈N*)原创 2016-02-10 16:04:59 · 1155 阅读 · 0 评论 -
【刷题算法】广度优先遍历BFS的最短路算法
注意: BFS的最短路只适合用于每条带权边的权重相同。如果每条边的权重不同,则BFS将不适用。这里不再解释BFS的基本概念,仅仅贴出两种语言(C++, python)的实现代码C++ 实现#include <iostream>#include <vector>#include <map>#include <queue>#...原创 2018-04-24 14:18:59 · 1536 阅读 · 0 评论