随笔分类 -  算法复习与学习

(坚持每天写算法)算法复习和学习part1基础算法part1-14——离散化
摘要:直接上题目: 离散化描写的是题目,离散化题目都是像这种,被操作的数据是”某个数据在无限长的x里面“,它的数据范围都是比较广阔的,所以被称为离散化。对于这种题目,我们要将数据以某种方式用连续的形式排到一个容器里面。(这就是映射)(ps:这里讲的是容器是为了提醒我自己) 这道题或许有人说使用哈希表,但是
7
0
0
(坚持每天写算法)算法学习与复习part1基础算法1-13——位运算
摘要:最近确实有在写算法,在写dp,之前学的时候不全,被计数,树型等dp折磨了一下。 位运算是将重点放在数字的位上,通常作为辅助行动,比如状态dp,有的时候是为了节省时空复杂度而使用的。 这是今天的题目: 位运算应用的情况除了上面讲的,还有单纯的位问题,上面的题目就是一个例子。 这道题的思路运用到了一个l
3
0
0
(坚持每天写算法)算法复习与学习part1基础算法part1-12——双指针算法
摘要:双指针是一种思路,很多题都可能用得到,这里我就只选取Acwing网站的三道题(事实上我最近就是在这里刷题,leetcode反而不怎么去了,刷完这个网站的我就会去leetcode刷了) 双指针一般来讲会在数组有序的情况下应用,但是如果是无序的也是有可能的,两个指针会遍历整个数组(如果条件允许的话)。
5
1
0
(坚持每天写算法)算法复习与学习part1基础算法part1-11——差分
摘要:差分和前缀和是有联系的。 首先给定一个原数组a:a[1], a[2], a[3],,,,,, a[n]; 然后我们构造一个数组b : b[1] ,b[2] , b[3],,,,,, b[i]; 使得 a[i] = b[1] + b[2 ]+ b[3] +,,,,,, + b[i] 也就是说,a数组是
8
0
0
(坚持每天写算法)算法学习与复习part1基础算法part1-10——前缀和
摘要:题目详情: 这一道题要使用前缀和,我们对前缀和的定义从从开头到某一个结尾的区间和。 假设有这么一种情况: 原数组: a[1], a[2], a[3], a[4], a[5], …, a[n] 前缀和 Si为数组的前 i项和 前缀和: S[i] = a[1] + a[2] + a[3] + … + a
9
0
0
(坚持每天写算法)算法复习和学习part1基础算法part1-9高精度乘法
摘要:这一道题的思路和之前都是一样的,仍然是按照算式进行模拟的,这里就直接贴代码了: #include <iostream> #include <cstdio> #include <cstring> #include <vector> #include <algorithm> using namespac
3
0
0
(坚持每天都写算法)算法复习与学习part1基础算法1.8高精度乘法
摘要:这道知识点有点特殊,我当初在学的时候是只学了高精度*高精度,然后其他的我还没有想法,今天就来学学。 有大概6天没有写新博客,主要是实习面试和期末考,实习面试没有过关,姐姐朋友推荐我先去刷一下面试题,叫我重温一下之前的知识,然后去参考一下开源项目,我决定边复习边写博客,就这样吧,缺的这6天,我就复习一
7
0
0
(坚持每天写算法)基础算法复习与学习part1基础算法1-7——高精度减法(处理t=1和t>1代码的写法,t为操作次数)
摘要:题目: 思路:这一道题其实和高精度加法的思路是差不多的,都是使用算式进行模拟。 重点:关于代码怎么写,在高精度加法那里还看不太出来(我也没有写),但是在高精度减法这里就完全可以看出来了。我们在加法算式里面,一般是A[i]+B[i]+t,但是也可以这么写:t+A[i]+B[i],我们可以先写进位,然后
7
0
0
(坚持每天写算法)算法复习与学习part1基础算法1-6——高精度加法
摘要:高精度加法,其实就是模拟我们普通算式的步骤,比如是267+58,首先个位相加,7 + 8 = 15 , 1给到十位(也就是进位),留下5,然后算十位,同样的步骤直到算完。通过这个步骤我们直到了我们每次循环(个位到十位到百位……)都需要一个t来充当进位,使用数组来存储或者使用vector(容器),我这
10
0
0
(坚持每天都写算法)算法复习与学习part1基础算法1-5
摘要:今天是写题,数的的三次方根。 使用二分法,浮点数不能位运算直接/2即可。 //这道题很难想到二分,二分查找是查找,就是找哪个地方有目标数 //一般是用在区间上的, //总结:二分要求是有查找条件且是查找,符合这两个条件就可以考虑 //不过这里可以把从0到n的浮点数当成一个区间,看数值范围的话,n的话
4
0
0
(坚持每天都写算法)算法基础复习part1基础算法1-4——二分
摘要:二分使用的前提是有序性的条件如果要找以下情况: 1.找大于等于数的第一个位置 2.找小于等于数的第一个位置 二分使用的前提是无序性的条件下如果要找以下情况: 1.找最大值 2.找最小值 二分法一般有边界问题,如果是有序性的条件下的话只要记住一句话:有加必有减。 这里是示例代码: int mid =
5
0
0
(坚持每天都写算法)算法基础复习part1基础算法1-3
摘要:发现了一个不太好的习惯,我写东西不喜欢Tab一下,导致行与行之间有点难区分。 题目: 思路:这道题其实考的就是归并,2可以和3比,也可以和6比,也就是说2是可以被使用多次的。之所以使用归并,是因为单个的2以及单个的3也就是单个的数字可以看成是一个数组(关于这个想法,集合也是通用的),那么就要给数组进
8
0
0
(坚持每天都写算法)算法基础复习part1基础算法1-2——归并排序
摘要:前言:本来想着找模板,但是第一篇的观感我自己觉得还可以(摆烂),所以就不搞了。 归并排序,是一种分治算法。当问题具有最优子结构并且子问题之间是互相独立的再加上子问题的规模可以是很小以至于很容易解决的以及子问题可以合并成整个问题的解,那么就可以考虑使用分治算法。子问题互相独立,即各个子问题所占的资源是
14
0
1
(坚持每天都写算法)算法基础复习part1基础算法1-1——快排
摘要:之前写过大概100多道的题目,但是之后因为各种原因很久都没有碰过算法题目,记忆丢失,虽然写题的时候有思路,但是一些语言完全就忘记怎么写了,之后应该也会出一些多语言练习,巩固一下语言基础。 本来想着有笔记所以就只是创建博客但是没有写,然后最近找实习什么的压力蛮大的,所以就写一下纯当疏解压力了。 由于是
9
0
0
点击右上角即可分享
微信分享提示
深色
回顶
收起
  1. 1 Lions Pride Audio artist
  2. 2 Salty Sailor David Arkenstone
  3. 3 Stonefire David Arkenstone
Salty Sailor - David Arkenstone
00:00 / 00:00
An audio error has occurred, player will skip forward in 2 seconds.

Not available