
算法专题
吴珝君
这个作者很懒,什么都没留下…
展开
-
链表的排序
/*** 本参考程序来自九章算法,由 @九章算法 提供。版权所有,转发请注明出处。* - 九章算法致力于帮助更多中国人找到好的工作,教师团队均来自硅谷和国内的一线大公司在职工程师。* - 现有的面试培训课程包括:九章算法班,系统设计班,算法强化班,Java入门与基础算法班,Android 项目实战班,* - Big Data 项目实战班,算法面试高频题班, 动态规划专题班* - 更多详...原创 2019-07-15 17:46:56 · 206 阅读 · 0 评论 -
求和为aim的最长子数组以及扩展问题
求和为aim的最长子数组//// mosteor.cpp// AdvancedFour//// Created by 吴珝君 on 2019/5/23.// Copyright © 2019年 闲着也是贤者. All rights reserved.//#include "mosteor.hpp"#include <iostream>#include...原创 2019-05-23 20:15:13 · 239 阅读 · 0 评论 -
分红包的两种方法
import java.math.BigDecimal;import java.text.DecimalFormat;import java.util.*;public class RedPacket { public static void main(String[] args) { // list = divideRedPacket(3,2);...原创 2019-05-30 16:42:51 · 582 阅读 · 0 评论 -
大楼轮廓问题
水平面上有N座大楼,每座大楼都是矩阵的形状,可以用一个三元组表示(start, end, height),分别代表其在x轴上的起点,终点和高度。大楼之间从远处看可能会重叠,求出N座大楼的外轮廓线。外轮廓线的表示方法为若干三元组,每个三元组包含三个数字 (start, end, height),代表这段轮廓的起始位置,终止位置和高度。请注意合并同样高度的相邻轮廓,不同的轮廓线在...原创 2019-05-23 10:57:23 · 535 阅读 · 0 评论 -
BST(java和c++实现)
import jdk.dynalink.beans.StaticClass;public class BST_Test { public static void main(String[] args) { System.out.println("helloworld"); int [] a = {62,88,58,47,35,73,51,99...原创 2019-05-24 19:33:25 · 359 阅读 · 0 评论 -
字符串替换
//// main.cpp// newcoder//// Created by 吴珝君 on 2019/5/5.// Copyright © 2019年 闲着也是贤者. All rights reserved.//#include <iostream>#include <string>#include <vector>using...原创 2019-05-06 20:09:25 · 199 阅读 · 0 评论 -
字符串的处理(分割字符串与替换字符)
//// main.cpp// newcoder//// Created by 吴珝君 on 2019/5/5.// Copyright © 2019年 闲着也是贤者. All rights reserved.///*题目描述请你实现一个简单的字符串替换函数。原串中需要替换的占位符为"%s",请按照参数列表的顺序一一替换占位符。若参数列表的字符数大于占位符个数。 则将剩...原创 2019-05-05 17:38:19 · 1642 阅读 · 0 评论 -
滑雪问题(动态规划)
// write your code here cpp/*1、本题使用递归的核心在于处理边界问题2、本文处理的时候 存储方式如下65535 65535 65535 6553565535 实体值 实体值 6553565535 实体值 实体值 6553565535 65535 65535 65535四周的值都比较大使得其不可越界*/#include<iostream&g...原创 2019-04-02 20:56:27 · 2085 阅读 · 0 评论 -
算法第七节(第1部分:从暴力递归到贪心策略)
#include <iostream>#include <vector>#include <algorithm>#include <ctime>#include <queue>#include <string>#include <map>#include <stack>原创 2019-02-20 23:52:26 · 155 阅读 · 0 评论 -
算法第六节(第4部分: 求宣讲会的最多场次)
#include <iostream>#include <vector>#include <algorithm>#include <ctime>#include <queue>#include <string>#include <map>#include <stack>原创 2019-02-20 22:13:06 · 239 阅读 · 0 评论 -
算法第六节(第7部分: 一个数据流中,随时可以取得中位数)
#include <iostream>#include <vector>#include <algorithm>#include <ctime>#include <queue>#include <string>#include <map>#include <stack>原创 2019-02-20 21:33:41 · 324 阅读 · 0 评论 -
算法进阶__第8课(两个有序数组相加和的topk问题、边长都是1的正方形大小、最大子数组的和、最长不重复子串、斐波那契扩展、完美洗牌问题)
题目1:两个有序数组间相加和的TOP K问题【题目】 给定两个有序数组arr1和arr2,再给定一个整数k,返回来自 arr1和arr2的两个数相加和最大的前k个,两个数必须分别来自 两个数组。【举例】 arr1=[1,2,3,4,5],arr2=[3,5,7,9,11],k=4。 返回数组[16,15,14,14]。【要求】时间复杂度达到O(klogk)。class N...原创 2019-06-05 11:58:46 · 895 阅读 · 0 评论 -
算法进阶__第7课(矩阵的最小路径和、最长递增子序列、最长公共子序列(长度+序列)、最长公共字符串(长度+子串)、最小编辑距离、回文最小分割数、有效的括号序列[1][2]、最长有效的括号数)
矩阵的最小路径和【题目】 给定一个矩阵m,从左上角开始每次只能向右或者向下走,最后 到达右下角的位置,路径上所有的数字累加起来就是路径和, 返回所有的路径中最小的路径和。【举例】如果给定的m如下:1359813450618840 路径1,3,1,0,6,1,0是所有路径中路径和最小的,所以返 回12。【要求】额外空间复杂度O( min {m , n})//// ...原创 2019-06-05 17:43:43 · 317 阅读 · 0 评论 -
算法基础__第7课(前缀树以及相关应用、分金条问题、IPO问题、数据流中的中位数、宣讲会的场次、字符串的最小拼接序列)
什么是前缀树、前缀树的基本特征、前缀树的应用、所谓的字典树又被称为前缀树或者叫做trie树,是处理字符串的常用数据结构。其优点是利用字符串的公共前缀来节约存储空间。其基本性质如下:(1)根节点没有字符路径。除根节点之外,每一个节点都被一个字符路径找到。(2)从根节点出发到任何一个节点,如果将沿途 的字符连接起来,一定是某个字符串的前缀。(3)每个节点向下所有的字符路径上的字符都不同。...原创 2019-06-11 19:30:42 · 210 阅读 · 0 评论 -
NewCoder Algorithm Part2(数组全排列、字符串的全排列、第一次只出现一次的字符、树的子结构、二叉树的对称性、和为S的两个数)
数组的全排列class Solution {public: vector<vector<int>> res; /* * @param nums: A list of integers. * @return: A list of permutations. */ vector<vector<int&g...原创 2018-11-27 21:08:07 · 109 阅读 · 0 评论 -
NewCoder Algorithm Part1(有序返回最小的k个数、回文串、前序中序构建树、中序后序构建树、二进制中1的个数、数组的整数次方、把数组排成最小的数、连续子数组的最大和l )
对于一个无序数组,数组中元素为互不相同的整数,请返回其中最小的k个数,顺序与原数组中元素顺序一致。给定一个整数数组A及它的大小n,同时给定k,请返回其中最小的k个数class Number{public: int index; int value; Number(int index, int value){ this->value = ...原创 2018-11-27 17:56:36 · 207 阅读 · 0 评论 -
算法进阶__第4课(大楼轮廓问题、LRU、LFU、异或和为0的最多划分、最大搜索二叉子树、和为aim的最长子数组)
给定一个N行3列二维数组,每一行表示有一座大楼,一共有N座 大楼。 所有大楼的底部都坐落在X轴上,每一行的三个值 (a,b,c)代表每座大楼的从(a,0)点开始,到 (b,0)点结束,高 度为c。 输入的数据可以保证a<b,且a,b,c均为正数。大楼之 间可以有重合。 请输出整体的轮廓线。 例子:给定一个二维数组 [ [1, 3, 3], [2, 4, 4], [5, 6, 1] ]...原创 2019-06-10 19:38:52 · 320 阅读 · 0 评论 -
算法进阶__第5课(判断一棵二叉树是否是搜索二叉树、判断一棵二叉树是否是完全二叉树、判断一棵树是否是平衡二叉树、二叉树的最大路径和[1][2]、最大欢乐值、)
判断一棵二叉树是否是搜索二叉树、 struct TreeNode { int val; TreeNode *left; TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) {} }; class Solution1{public: l...原创 2019-06-10 18:11:14 · 264 阅读 · 0 评论 -
算法基础__第2课(按照某个值划分数组、荷兰国旗问题、快速排序以及对快速排序的改进、堆排序以及堆排序的时间复杂度分析。基数排序特点以及介绍)
给出一个整数数组 nums 和一个整数 k。划分数组(即移动数组 nums 中的元素),使得:所有小于k的元素移到左边所有大于等于k的元素移到右边返回数组划分的位置,即数组中第一个位置 i,满足 nums[i] 大于等于 k。样例Example 1:Input:[],9Output:0Example 2:Input:[3,2,2,1],2Output:1Ex...原创 2019-06-15 15:58:27 · 256 阅读 · 0 评论 -
算法进阶__第6课(换硬币(需要的最少的硬币数,硬币有多个)、换硬币(能够换硬币的种类,硬币有多个)、字符串匹配、未排序数组种累加和维给定值的最长子数组系列问题)
需要的最少硬币数目class Solution {public: /** * @param coins: a list of integer * @param amount: a total amount of money amount * @return: the fewest number of coins that you ne...原创 2019-06-08 21:15:34 · 202 阅读 · 0 评论 -
算法基础__第3课(数组实现队列和栈、实现能够获取最小值的栈、队实现栈、栈实现队、转圈打印矩阵、螺旋矩阵、链表反转(I、II)、之字形打印矩阵、有序矩阵找值、打印链表公共部分、带环链表问题)
用数组结构实现大小固定的队列和栈//// arrtostackorqueue.cpp// basic3//// Created by 吴珝君 on 2019/6/13.// Copyright © 2019年 闲着也是贤者. All rights reserved.//#include <iostream>#include <iostream&...原创 2019-06-13 17:19:14 · 259 阅读 · 0 评论 -
算法基础__第4课(二叉树前中后序非递归遍历、层次遍历、二叉树的序列化与反序列化、二叉树的后继节点、二叉搜索树的后继节点、折纸问题)
1. 二叉树的锯齿形层次遍历给出一棵二叉树,返回其节点值的锯齿形层次遍历(先从左往右,下一层再从右往左,层与层之间交替进行) 样例样例 1:输入:{1,2,3}输出:[[1],[3,2]]解释: 1 / \ 2 3它将被序列化为 {1,2,3}样例 2:输入:{3,9,20,#,#,15,7}输出:[[3],[20,9],[15,7]]解释: ...原创 2019-06-12 18:58:29 · 316 阅读 · 0 评论 -
算法基础__第5课(认识哈希函数与哈希表、设计RandomPool结构、认识布隆过滤器、认识一致性哈希、岛问题、认识并查集结构)
57. Insert Delete GetRandom O(1)中文English设计一个数据结构实现在平均 O(1) 的复杂度下执行以下所有的操作。insert(val): 如果这个元素不在set中,则插入。remove(val): 如果这个元素在set中,则从set中移除。getRandom: 随机从set中返回一个元素。每一个元素返回的可能性必须相同。样例// 初始...原创 2019-06-12 17:28:02 · 195 阅读 · 0 评论 -
算法第六节(第2部分:切金条)
#include <iostream>#include <vector>#include <algorithm>#include <ctime>#include <queue>#include <string>#include <map>#include <stack>原创 2019-02-20 21:04:36 · 236 阅读 · 0 评论 -
算法第六节(第1部分: 全排列)
#include <iostream>#include <vector>#include <algorithm>#include <ctime>#include <queue>#include <string>#include <map>#include <stack>原创 2019-02-20 18:49:28 · 84 阅读 · 0 评论 -
算法第五节(第7部分求字符串的拼接后的最小串)
#include <iostream>#include <vector>#include <algorithm>#include <ctime>#include <queue>#include <string>#include <map>#include <stack>原创 2019-02-19 22:40:22 · 153 阅读 · 0 评论 -
算法第一课(小和问题)
#include <iostream>#include <stack>using namespace std;//// dfs.h// dfs//// Created by 吴珝君 on 2018/12/25.// Copyright © 2018年 闲着也是贤者. All rights reserved.///*************...原创 2019-02-12 00:24:45 · 164 阅读 · 0 评论 -
算法第七节(第2部分:大数的四则远算)
#include<iostream>#include <string>using namespace std;class Mutiply{public: string mutiply(string num1 , string num2) { long len1 = num1.size(); long len2 = num2.size(); lon...原创 2019-02-22 15:13:02 · 147 阅读 · 0 评论 -
算法第五节(第6部分 :前缀树)
#include <iostream>#include <vector>#include <algorithm>#include <ctime>#include <queue>#include <string>#include <map>#include <stack>原创 2019-02-19 22:26:21 · 127 阅读 · 0 评论 -
算法第五节(第5部分: 孤岛问题的解决以及思考)
#include <iostream>#include <vector>#include <algorithm>#include <ctime>#include <queue>#include <string>#include <map>using namespace std;//// tes原创 2019-02-19 19:03:49 · 1695 阅读 · 0 评论 -
算法第五节(第4部分: 并查集)
#include <iostream>#include <vector>#include <algorithm>#include <ctime>#include <queue>#include <string>#include <map>using namespace std;//// tes原创 2019-02-19 18:05:05 · 142 阅读 · 0 评论 -
算法第五节(第3部分:一致性哈希)
本文转载自:一致性哈希算法原理一致性Hash算法背景 一致性哈希算法在1997年由麻省理工学院的Karger等人在解决分布式Cache中提出的,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似。一致性哈希修正了CARP使用的简单哈希算法带来的问题,使得DHT可以在P2P环境中真正得到应用。 但现在一致性hash算法在分布式系统中也得到了广泛应用,研究...原创 2019-02-19 15:04:45 · 126 阅读 · 0 评论 -
算法第五节(第2部分 :布隆过滤器)
本文转载自:布隆过滤器(Bloom Filter)详解 直观的说,bloom算法类似一个hash set,用来判断某个元素(key)是否在某个集合中。和一般的hash set不同的是,这个算法无需存储key的值,对于每个key,只需要k个比特位,每个存储一个标志,用来判断key是否在集合中。算法:1. 首先需要k个hash函数,每个函数可以把key散列成为1个整数2. 初始化时,需要...原创 2019-02-19 14:56:24 · 172 阅读 · 0 评论 -
算法第五节(第1部分:认识哈希表和哈希函数)
#include <iostream>#include <stack>#include <vector>#include <algorithm>#include <cstdlib>#include <ctime>#include <queue>#include <string&原创 2019-02-19 14:48:04 · 130 阅读 · 0 评论 -
算法第四节(第14部分 以低于O(N)的时间负载度求完全二叉树的节点个数)
#include <iostream>#include <stack>#include <vector>#include <algorithm>#include <cstdlib>#include <ctime>#include <queue>#include <string&原创 2019-02-18 23:03:25 · 146 阅读 · 0 评论 -
算法第四节(第13部分: 是否为完全二叉树)
#include <iostream>#include <stack>#include <vector>#include <algorithm>#include <cstdlib>#include <ctime>#include <queue>#include <string&原创 2019-02-18 22:09:41 · 125 阅读 · 0 评论