蓄水池抽样算法(Reservoir Sampling)

蓄水池抽样算法(Reservoir Sampling) 许多年以后,当听说蓄水池抽样算法时,邱simple将会想起,那个小学数学老师带他做“小明对水池边加水边放水,求何时能加满水”应用题的下午。 一、问题 我是在一次失败的面试经历中听说蓄水池算法的。之后上网搜了搜,知道是一个数据抽样算法,寥...

2019-04-03 21:24:08

阅读数 8

评论数 0

[LeetCode] Maximal Square 最大正方形

Given a 2D binary matrix filled with 0's and 1's, find the largest square containing all 1's and return its area. For example, given the following m...

2019-04-03 21:23:44

阅读数 36

评论数 0

sqrt

求取平方根 class Solution { public: int sqrt(int x) { if(x<=0){ return 0; } long res=x; ...

2019-04-03 21:23:24

阅读数 57

评论数 0

求数组,左边的数都小于等于它,右边的数都大于等于它

题目 在一个 int 数组里查找这样的数,它大于等于左侧所有数,小于等于右侧所有数。直观想法是用两个数组 a、b。a[i]、b[i]分别保存从前到 i 的最大的数和从后到 i 的最小的数,一个解答:这需要两次遍历,然后再遍历一次原数组,将所有 data[i]>=a[i-1]&...

2019-03-25 23:44:15

阅读数 25

评论数 0

二叉树的镜像

/* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(...

2019-03-25 18:23:17

阅读数 9

评论数 0

缺失的第一个正数

个人分类:面试 给出一个无序的正数数组,找出其中没有出现的最小正整数。 样例 如果给出[1,2,0], return3如果给出[3,4,-1,1], return2 挑战 只允许时间复杂度O(n)的算法,并且只能使用常数级别的空间。 分析:把当前数放到该放的位置即可,如1应该放到第0个...

2019-03-25 17:49:52

阅读数 8

评论数 0

数组循环移动的几种做法

题目描述: 设计一个算法,把一个含有N个元素的数组循环右移K位。 解法一: 最容易想到的就是每次将数组中的元素右移一位,循环K次。 #include<iostream> using namespace std; void RightShift(int *arr, i...

2019-03-25 17:30:00

阅读数 23

评论数 0

找出一个无序数组的中位数

要解决这个问题首先要了解什仫是中位数,所谓的中位数就是在一组有序的数字中找到中间的那个数字。如果数字的个数是奇数则直接返回中间的那个数,如果数字的个数是偶数此时这组数据的中位数有两个,取中间两个数的平均值即可。 想法一、不论用什仫排序算法使得该组数据有序,直接取中间值即可。 这种只要你掌握常见的排...

2019-03-25 08:47:40

阅读数 63

评论数 0

数组中一个数出现一次,其余出现3次

class Solution { public: int singleNumber(int A[], int n) { // 将每一位 进右用移动 相加 int result=0; for(int i=0;i<32;++i){ int bits=0; f...

2019-03-25 08:43:16

阅读数 10

评论数 0

有序数组中的个数平方的个数

题目如下: 给你一个有序整数数组,数组中的数可以是正数、负数、零,请实现一个函数,这个函数返回一个整数:返回这个数组所有数的平方值中有多少种不同的取值。举例: nums = {-1,1,1,1}, 那么你应该返回的是:1。因为这个数组所有数的平方取值都是1,只有一种取值 nums = {-...

2019-03-25 08:41:30

阅读数 8

评论数 0

洗牌算法,概率问题

洗牌可以抽象为:给定一组排列,输出该排列的一个随机组合,本文代码中均以字符数组代表该排列 算法1-算法3 都是在原序列的基础上进行交换,算法空间复杂度为O(1) 算法1(错误):随机交换序列中的两张牌,交换n次(n为序列的长度),代码如下: 1 void Shuffle_random...

2019-03-25 08:38:54

阅读数 56

评论数 0

小括号能够产生正确的对数

class Solution { public: int num; vector<string> generateParenthesis(int n) { vector<string> res; ...

2019-03-25 08:38:27

阅读数 16

评论数 0

矩阵有序的搜索

class Solution { public: bool searchMatrix(vector<vector<int> > &matrix, int target) { //从右上角 ...

2019-03-25 08:38:00

阅读数 4

评论数 0

二叉树中寻找一条路径和最大

/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x)...

2019-03-25 08:37:26

阅读数 9

评论数 0

Google面试题 3| 矩阵中的最长上升路径

题目描述 Given an integer matrix, find the length of the longest increasing path. From each cell, you can either move to four directions: left, right, u...

2019-03-25 08:35:46

阅读数 18

评论数 0

最长01字串

题目描述: 已知一个长度为N的字符串,只由0和1组成, 求一个最长的子串,要求该子串出0和1出现的次数相等。 要求算法时间复杂度尽可能的低。 比如: 1000010111000001,加粗的部分有4个0、4个1 思路: (1) 最简单的想法就是遍历所有的子串,之后判断该子...

2019-03-25 08:33:55

阅读数 7

评论数 0

编程之美3.8:求二叉树中节点的最大距离

如果把二叉树看成一个图,父子节点之间的连线看成是双向的,定义“距离”为两个节点之间边的个数。写一个程序求一棵二叉树中相距最远的两个节点之间的距离。 1 分析 二叉树中节点的最大距离必定是两个叶子节点的距离。求某个子树的节点的最大距离,有三种情况:1.两个叶子节点都出现在左子树;2.两个叶子节...

2019-03-25 08:31:51

阅读数 14

评论数 0

给定能随机生成整数 1 到 5 的函数,写出能随机生成整数 1 到 7 的函数。

链接:https://www.nowcoder.com/questionTerminal/a475db9aa74747709e65399c0c7d86d2?from=14pdf 来源:牛客网 int rand7() { int n=25; while(n>21){ n=5...

2019-03-25 08:31:11

阅读数 61

评论数 0

POJ 2796:Feel Good 单调栈经典题(求一区间,使得区间元素和乘以区间最小值最大)

解答 解法一:暴力解法 穷举所有数组中所有子数组,并计算所有子数组中最小值*子数组所有数的和,求出其中的最大值即可,代码如下: int enum_method(vector<int> &num) { int n = num.size(); i...

2019-03-25 08:30:15

阅读数 65

评论数 0

回溯法--深度优先搜索

1、概念 回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径。 回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的...

2019-03-22 00:07:56

阅读数 43

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭