基础算法
文章平均质量分 76
本模块是本人参与算法竞赛、考研复试、找工作算法刷题的一些笔记
小卜妞~
努力精通深度学习、精通机器学习、精通数据科学!
努力精通Java开发、熟练掌握计算机基础!
展开
-
Maximum subarray problem【最大子数组问题】
前言:刚开始看 (Algorithm Design and Application),其中第1章算法分析中讲到一个算法分析案例,就是最大子数组问题(Maximum subarray problem),据说大公司的面试经常考察这个问题,可以测试程序员思考能力,而且应用于数字化图像模式识别。问题描述:给定一个数组A[-2,-4,3,-1,5,6,-7,-2,4,-3,2],连续的子数组的和...原创 2021-10-22 18:05:43 · 242 阅读 · 0 评论 -
记:百度秋招20210907笔试题
百度-正式批笔试-0907选择题占60分,编程题占40分选择题基本是Java、计算机网络、操作系统、数据结构类的题目,考研408,emmmmlist.stream().map(d->1).reduce(0,(a,b)->a+b):本题关于Java1.8的新特性stream的功能进行考察,stream是用来管理集合数据的,可以看作高级的迭代器;map用来归类;reduce用来计算值。本句代码表示计算流中元素个数,换成count()也可计数。计网:GBN协议,发送0-10帧,计时器超时原创 2021-09-08 17:29:04 · 359 阅读 · 0 评论 -
阿里2021春招笔试题:排队取餐+翻转数组~~python
前提了解:阿里的笔试题只有2道,是ACM赛制,整体不算难,难点在于需要找到一个合适的数据结构存储相应数据,并且在限定时间内解决问题,哈哈哈,我比较菜,没做出来~~1 排队取餐问题题目描述:给定n个样例,每个样例包含s个学生,接着给出每个学生到达的时间L[i]和预期取餐的时间R[i],需要打印出学生真正取到餐的时间。条件:● 按照学生达到时间L[i]从小到大的顺序入队,若两同学的到达时间相同,则编号小的在前(注意入队的时候和R[i]无关);● 只要队伍不空,就可以依次取餐,取餐时间从k=1开始;原创 2021-04-10 18:20:12 · 399 阅读 · 2 评论 -
leetcode图解算法数据结构---动态规划
2 动态规划复习2.1 动规基本原理2.2 动规解题思路2.3 动规适合题型* 实战例题剑指 Offer 10- I. 斐波那契数列剑指 Offer 10- II. 青蛙跳台阶问题剑指 Offer 19. 正则表达式匹配剑指 Offer 42. 连续子数组的最大和剑指 Offer 46. 把数字翻译成字符串剑指 Offer 47.礼物的最大价值剑指 Offer 48. 最长不含重复字符的子字符串剑指 Offer 49. 丑数剑指 Offer 63. 股票的最大利润...原创 2021-03-09 18:30:47 · 259 阅读 · 0 评论 -
leetcode图解算法数据结构---数据结构
leetcode学习模块之《图解算法-数据结构篇》,简单的算法思想,解题的方法简要记录原创 2021-03-01 20:32:43 · 565 阅读 · 1 评论 -
LeetCode算法-983. Minimum Cost For Tickets[medium]
In a country popular for train travel, you have planned some train travelling one year in advance. The days of the year that you will travel is given as an array days. Each day is an integer from 1 ...原创 2020-05-06 22:59:41 · 132 阅读 · 0 评论 -
LeetCode算法-1395. 统计作战单位数[medium]
There are n soldiers standing in a line. Each soldier is assigned a unique rating value.You have to form a team of 3 soldiers amongst them under the following rules:Choose 3 soldiers with index (i, j,...原创 2020-04-21 23:48:47 · 170 阅读 · 0 评论 -
LeetCode算法-1342. 将数字变成 0 的操作次数 [easy]
给你一个非负整数 num ,请你返回将它变成 0 所需要的步数。 如果当前数字是偶数,你需要把它除以 2 ;否则,减去 1 。思路:常规循环说明:Python中的符号除法 / 取整 // 取余 %class Solution: def numberOfSteps (self, num: int) -> int: step = 0 while(...原创 2020-04-21 22:59:59 · 249 阅读 · 0 评论 -
LeetCode算法-LCP 01. 猜数字 [easy]
Question:小A和小B在玩猜数字。小B每次从 1, 2, 3 中随机选择一个,小A 每次也从 1, 2, 3 中选择一个猜。他们一共进行三次这个游戏,请返回 小A 猜对了几次?输入的guess数组为 小A 每次的猜测,answer数组为 小B 每次的选择。guess和answer的长度都等于3。class Solution: def game(self, guess: Lis...原创 2020-04-21 00:15:12 · 667 阅读 · 0 评论 -
LeetCode算法-9. Palindrome Number [easy]
Question:Determine whether an integer is a palindrome(回文数). An integer is a palindrome when it reads the same backward as forward.Example 1:Input: 121Output: trueExample 2:Input: -121Output: ...原创 2020-04-20 20:28:31 · 108 阅读 · 0 评论 -
LeetCode算法-7. Reverse Integer [easy]
Question:Given a 32-bit signed integer, reverse digits of an integer.Example 1:Input: 123Output: 321Example 2:Input: -123Output: -321Example 3:Input: 120Output: 21Note:Assume we are dea...原创 2020-04-20 20:28:27 · 97 阅读 · 0 评论 -
LeetCode算法-1.Two Sum [easy]
Question:Given an array of integers, return indices of the two numbers such that they add up to a specific target.You may assume that each input would have exactly one solution, and you may not use ...原创 2020-04-20 20:28:15 · 155 阅读 · 0 评论 -
西安电子大学计算机考研复试机试(2019)+ 2018年真题【数组中间数+字符串匹配+签到打卡时间计算+车票预定分配问题】
/*2018 problem A模拟跳一跳小游戏,未跳到下一个小方块上,游戏结束未跳到方块中心,获得1分;跳到中心,如果上一次是1分或者这是第一步,加2分;否则比上一次得分多2分(连续跳时,+2,+4,+6,...) cin:多个数字,0 1 2之一。(不超过30个) cout:总分 */ #include<iostream> #include<cstdi...原创 2019-04-08 20:28:39 · 949 阅读 · 0 评论 -
西安电子大学计算机考研复试机试(2019)+ 2017年真题【数组中间数+字符串匹配+签到打卡时间计算+车票预定分配问题】
/*2017 problem A整数序列a1,....,an中,如果存在某个数,大于他的整数数量等于小于他的的整数数量,则称其为中间数 一个序列中可能存在多个下标不同的中间数 。给定一个整数序列。找出整数序列的中间数的值。cin:n a[n] cout:中间数的数值,-1不存在中间数case in:62 6 5 6 3 5case out:5 */#include<...原创 2019-04-08 20:27:54 · 516 阅读 · 0 评论 -
西安电子大学计算机考研复试机试(2019)+ 2015机试真题【素数+压缩字符串+迷宫问题+学生成绩排序(文件读写fstream)】
/*2015 problem A一串数字中大于1的素数之和不超过10组,每组不超过100个数,0结束 */ #include<iostream> using namespace std;/* 原本的想法是,直接计算出素数表然后判断输入的数组中如果有素数表中的数,那么直接加和,输出答案但是这种想法,需要每次在素数表中查找元素,运行时间就会很长我还想过,可以把素数表...原创 2019-03-19 10:51:42 · 394 阅读 · 0 评论 -
西安电子大学计算机考研复试机试(2019)+ 2013年真题【递归简单题+一串数字的数字出现频率+进制的转换+huffman编码】
未解决的题目/*2013 problem C根据英文字母出现的频率,对其进行Huffman编码,其中“#” 代替空格 cin:从文件中读取测试用例,总长度不超过1000 cout:解码后的测试用例,包括空格 */#include <iostream>#include <fstream>#include <cassert>#include ...原创 2019-04-08 20:28:49 · 368 阅读 · 0 评论 -
西安电子大学计算机考研复试机试(2019)+ 2011年真题【每位数字加和排序+马鞍点+字符串压缩+Huffman数计算WPL(priority_queue)】
2011 problem A/*2011 problem Acin:n个数字(0,1000) ,0结束 cout:每位数加和排序输出(小->大)*/ #include<cstdio> #include<vector>#include<algorithm>#include<iostream>using namespa...原创 2019-04-08 20:28:33 · 471 阅读 · 0 评论 -
西安电子大学计算机考研复试机试(2019)+ 2008年真题【等差数列+水仙花数+图像置乱技术+斯密斯数+大数的阶乘】
2008problemA判断给定整数数列能否构成等差数列。输入:多组数据,每组数据由两行构成,第一行整数n(<1000),表示序列的长度(输入0结束),第二行为n个整数,取值区间【-32768~32767】,整数间以空格间隔。输入样本:623 15 4 18 35 1133 1 20输出样本:NoYes/*2008 problem A判定...原创 2019-04-08 20:28:04 · 325 阅读 · 0 评论 -
西安电子大学计算机考研复试机试(2019)+ 2009年真题【完数+方阵求和+字符串提取数字求最大质因子+二叉树后序遍历+括号匹配问题】
牛客网 2009 problemA本题是要求【a,b】范围中的完数,也就是6=1+2+3;除了该数本身的其他因子之和等于该数就是完数。大部分人能写出这个程序,在自己的编辑器上都能通过。但是牛客网的测试样例都很大,本题我一开始按照下面的程序写的,超时不能通过。后来发现1-10000内的完数就4个,大家都直接拿这四个数来做一些判断得到答案,算是一种偷分的方法吧。后来终于发现了下面这个方法,...原创 2019-03-10 16:46:49 · 465 阅读 · 0 评论 -
西安电子大学计算机考研复试机试(2019)+ 2008年真题(等差数列)
A 判断一个数列是否是等差数列数学回顾:定义法:An+1-An = 公差测试用例输入样本623 15 4 18 35 1133 1 20输出样本YesNo输出样本明显有错,第一组数列明显不是等差数列呀!/*2008A判断等差数列多组测试数据;个数+数组 cout:Yes/No */#include<cstdio> #includ...原创 2019-03-09 11:27:14 · 678 阅读 · 3 评论 -
西安电子大学计算机考研复试机试(2019)+ 学长讲解(6)+ 作业【sscanf+目录分级】
学长讲的就是算法笔记的入门算法作业1链接:https://www.nowcoder.com/questionTerminal/0f64518fea254c0187ccf0ea05019672来源:牛客网有一个网络日志,记录了网络中计算任务的执行情况,每个计算任务对应一条如下形式的日志记录: “hs_10000_p”是计算任务的名称, “2007-01-17 19:22:53,315”...原创 2019-04-08 20:29:03 · 340 阅读 · 0 评论 -
西安电子大学计算机考研复试机试(2019)+ 学长讲解(5)+STL
西电是单点测试。STL标准库 vector又名动态数组,可以理解为自动增大长度的一个数组,现在请你用vector来解决问题:你现在是一个论坛的站长,你们论坛有10万个帖子,每个帖子编号为1-100000每个帖子里面又有若干个回复.现在告诉你每个帖子下面的回复人的ID(ID的范围为1-100000)现在你要写一个程序,支持插入操作,即ADD x y 代表编号为x的帖子有一...原创 2019-04-08 20:27:36 · 1212 阅读 · 0 评论 -
西安电子大学计算机考研复试机试(2019)+ 算法笔记 + 数学问题(大整数)
将大整数用字符串存储起来,并将其每一位拆分开,按照字符的顺序存入int数组中,数组的下标从大数字的低位到高位递增,数组的值即大整数每一位的值。其加减法,也是按位进行运算,注意进位和借位的处理即可。#include <cstdio>#include <iostream> #include <cstring>#include <algorithm...原创 2019-03-01 17:34:24 · 2548 阅读 · 0 评论 -
西安电子大学计算机考研复试机试(2019)+ C++STL标准库之Vector
vector的定义长度根据需求改变的数组vector<typename> name(n); // 相当于typename类型的一维数组。typename可以是int,double,long,char,结构体。n表示该一维数组的长度,只能用小括号。vector<vector<int>+> name; // 相当于二维数组;加号“+”的位置是空格,必...原创 2019-03-01 15:59:50 · 624 阅读 · 0 评论 -
西安电子大学计算机考研复试机试(2019)+ 算法笔记 + 数学问题(gcd/最小公倍数/分数等)
/*最大公约数*/int gcd(int a,int b){ if(b == 0) return a; return gcd(b,a%b);} /*最小公倍数*/cout<<a*b/gcd(a,b)<<endl; 递归+出口#include<cstdio>#include<iostream>#include <cm...原创 2019-02-28 15:54:01 · 518 阅读 · 0 评论 -
西安电子大学计算机考研复试机试(2019)+ 算法笔记 + 数学问题(PAT B1019/A1069 数字黑洞)
PAT B1019/A1069 数字黑洞1069The Black Hole of Numbers(20 分)For any 4-digit integer except the ones with all the digits being the same, if we sort the digits in non-increasing order first, and then ...原创 2019-02-28 15:23:21 · 399 阅读 · 0 评论 -
西安电子大学计算机考研复试机试(2019)+ 算法笔记 + 散列
#include<iostream>using namespace std;const int maxn = 100010;bool hashTable[maxn] = {false};int main(){ int n,m,x; cin>>n>>m; for(int i=0;i<n;i++){ cin>>x; h...原创 2019-04-10 09:38:00 · 965 阅读 · 0 评论 -
西安电子大学计算机考研复试机试(2019)+学长讲解(4)+ 函数/指针/结构体/类
参数引用类型#include<iostream>#include<stdio.h>using namespace std;// 形参类型需要加引用void swap(int &a,int &b){ int temp = a; a=b; b=temp; }int main(){ int a , b ; cin>>a...原创 2019-04-08 20:28:17 · 557 阅读 · 0 评论 -
西安电子大学计算机考研复试机试(2019)+ 算法笔记(入门二)+选择排序+插入排序+sort()的例子(PAT A1025)
选择排序+插入排序#include<iostream>#include<cstdio>#include<cstring>using namespace std;/*选择排序 :每次找最小值往前放,前面构成一个有序序列 */ void select_sort(int a[],int n){ for(int i=0;i<n;i++)...原创 2019-02-26 11:27:06 · 340 阅读 · 0 评论 -
西安电子大学计算机考研复试机试(2019)+ 牛客网(进制的转换)
内容原创 2019-02-25 13:01:00 · 990 阅读 · 0 评论 -
西安电子大学计算机考研复试机试(2019)+ 算法笔记(入门一)+简单模拟/查找/图形输出/日期处理/进制转换/字符串处理
/*n 偶数 砍半奇数 3n+1 砍半 n = 1 */#include<iostream>#include<cstdio>using namespace std;int main(){ int n,count=0; while(cin>>n){ while(n!=1){ if(n%2!=0){ n = 3*n+1...原创 2019-02-25 12:21:15 · 383 阅读 · 0 评论 -
西安电子大学计算机考研复试机试(2019)+ C/C++基础补充
常量的定义:#define pi 3.14const double pi = 3.14;define还可以定义语句或片段:#define ADD(a,b)((a)+(b))如果数组较大(10^6级别)需要在主函数外面定义memset(数组名,初始值,sizeof(数组名));使用getchar()读取字符时,必须要在每个字符串后加入“\0”;此时数组长度多1....原创 2019-02-25 09:47:08 · 746 阅读 · 0 评论 -
西安电子大学计算机考研复试机试(2019)+ 牛客网(划分字串+map应用)
#include<iostream>#include<string>#include<map> using namespace std; int main() { string str; while (cin >> str) { map<string, int> mp; for...原创 2019-02-24 21:22:17 · 940 阅读 · 0 评论 -
西安电子大学计算机考研复试机试(2019)+学长讲解(3)+ 数组 + string
数组定义时初始化:int a[10] = {}; 或者 {0}; 未赋初值元素默认为0。数组初始化:memset函数char str[10]="";gets()函数需要加上头文件:#include<cstdio>stringint len = strlen(str); 字符串的长度 int cmp = strcmp(str1,str...原创 2019-04-08 20:27:47 · 299 阅读 · 0 评论 -
西安电子大学计算机考研复试机试(2019)+ 牛客网(字符串提取数字+最大素因子)
第三题求解最大素因子:在网上学到一种新方法:(筛法)1,开辟一个数组空间,初始化为0;0和1的素因子默认0,故 i 从2开始循环;2,j 的初值是 i ,每次循环又加上 i ,即 j 每次都存的是 i 的倍数。通过a[ j ]将 j 位置上的数赋值为 i ,也就是 j 可能的最大素因子是 i。3,最外层for循环,当判断a[ i]不是0时,说明此处坐标位置 i 是合数...原创 2019-02-21 12:21:39 · 487 阅读 · 0 评论 -
西安电子大学计算机考研复试机试(2019)+学长讲解(2)+math/数组
常用math函数fabs(float a);(%.2f):求浮点数的绝对值 floor(float a);向下取整(如,23.22--->23;-23.22--->-24) ceil(float a);向上取整,与floor相反 pow(float a,float b);a的b次幂,其中a>0 sqrt(float a);根号a,其中a>0 log(flo...原创 2019-04-08 20:28:57 · 873 阅读 · 0 评论 -
西安电子大学计算机考研复试机试(2019)+ 牛客网(完数/矩阵求和/)
第一题:/*1.找出一个数所有的因子2.判断是否该数是完数3.将此放入一个大循环中,找到所有的完数*/#include<stdio.h>bool perfectNum(int num);int main(){ int low,high,i; printf("请输入上下界范围:\n"); scanf("%d %d",&low,&high);...原创 2019-02-20 12:11:31 · 9830 阅读 · 8 评论 -
几种基本排序算法总结~思路及Java实现
排序算法平均时间复杂度稳定性空间复杂度冒泡排序O(n2)O(n^2)O(n2)1O(1)O(1)O(1)选择排序O(n2)O(n^2)O(n2)不稳定O(1)O(1)O(1)插入排序O(n2)O(n^2)O(n2)1O(1)O(1)O(1)希尔排序O(n1.5)O(n^{1.5})O(n1.5)不稳定O(1)O(1)O(1)快速排序O(NlogN)O(NlogN)O(NlogN)不稳定O(logN)O(log N)O(logN)...原创 2021-04-01 17:01:53 · 126 阅读 · 0 评论 -
并查集--杭电1232--畅通工程
杭电畅通工程问题描述:n个城镇,任何两个城镇可以互通,还需要多少条路?思路:就是查找连通分量的个数,标记每一个结点的前导点,判断是否根节点是否一致。有x个连通分量,那么就需要至少x-1条边输入:n个城市 m条边通过并查集的思想可以很有效的求出连通分量的个数。以下有一个点非常重要,p1 = find(a);p2 = find(b);如果二者的root不同,那么现在给定的a-b的...原创 2019-10-19 12:36:32 · 129 阅读 · 0 评论 -
并查集之POJ 1182食物链【挑战程序设计竞赛】
原创 2019-10-19 11:18:12 · 105 阅读 · 0 评论