力扣
文章平均质量分 61
~怎么回事啊~
这个作者很懒,什么都没留下…
展开
-
正整数大数加减的简单实现
#define _CRT_SECURE_NO_WARNINGS#include <iostream>#include <string>#include <functional>using namespace std;class BigInt{public: BigInt(std::string str="") :str_int_(str) {} //+ 运算符重载 friend BigInt operator+(const BigInt &a.原创 2021-12-18 16:33:48 · 299 阅读 · 0 评论 -
海量数据查重问题解决方案
1. 处理海量数据问题的四种方式 分治 基本上处理海量数据的问题,分治思想都是能够解决的,只不过一般情况下不会是最优方案,但可以作为一个baseline,可以逐渐优化子问题来达到一个较优解。传统的归并排序就是分治思想,涉及到大量无法加载到内存的文件、排序等问题都可以用这个方法解决。 适用场景:数据量大无法加载到内存 有一个文件,有大量的整数,50亿个整数,内存限制400M,找到文件中重复的元素,重复的次数。1G=1024x1024x1024=10 7374 18原创 2021-12-12 22:51:08 · 1084 阅读 · 0 评论 -
算法导论:期望为线性时间的选择算法
/* p:期望为线性时间的选择算法 t:2018年5月2日 11:06:05*/#include<iostream>#include<stdio.h>//随机数#include<stdlib.h>#include<time.h>using namespace std;//随机化找出第i小的数/* a[] 数组名 p 起始位置 r 结束位置 i 第i小的数*///划分程序int...原创 2021-12-12 21:13:37 · 253 阅读 · 0 评论 -
算法导论:快速排序 c++
来自算法导论第七章:快速排序1. 算法描述 快速排序(quick-sort)与前面介绍的归并排序(merge-sort)(见算法基础——算法导论(1))一样,使用了分治思想。下面是对一个一般的子数组A[p~r]进行快速排序的分治步骤:①分解:数组A[p~r]被划分为两个子数组A[p~q]和A[q+1~r],使得A[q] 大于等于 A[p~q] 中的每个元素,且小于等于 A[q+1~r] 中的每个元素。(需要注意的是, A[p~q] 和 A[q+1~r] 可能为空)②解决:对子数组...原创 2021-12-12 21:02:09 · 782 阅读 · 0 评论 -
堆排序算法
堆排序 该节内容来自《算法导论》:第六章 堆排序1、堆 堆给人的感觉是一个二叉树,但是其本质是一种数组对象,因为对堆进行操作的时候将堆视为一颗完全二叉树,树种每个节点与数组中的存放该节点值的那个元素对应。所以堆又称为二叉堆,堆与完全二叉树的对应关系如下图所示: 什么是完全二叉树:全二叉树从根结点到倒数第二层满足完美二叉树,最后一层可以不完全填充,其叶子结点都靠左对齐,设二叉树的深度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第 h 层...原创 2021-12-12 20:29:56 · 296 阅读 · 0 评论 -
2 两数相加(c++ 链表 )
1 问题给出两个非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0开头2 解决思想:和数学的加法相同,首先让l1第一个元素2和l2的第一个元素5相加,结果保存在result的第一...原创 2019-10-23 20:30:59 · 379 阅读 · 0 评论 -
1.两数之和(c++ 数组)
1 问题给定一个整数数组 nums和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素.2 解决使用查找表来解决。因为题中说明:你可以假设每种输入只会对应一个答案。设置一个 map 容器nums_Map,nums_Map存储的数据类型为<int,i...原创 2019-10-23 19:01:56 · 474 阅读 · 0 评论