算法设计分析
文章平均质量分 66
本科学习的算法设计与分析
忆_恒心
计算机研究生,研究方向为人工智能中的自然语言处理
在校期间获过国家奖学金,发表过SCI一区顶刊论文,CCF-B会议论文,51CTO博客专家。
研究领域:C++,自然语言处理中的细粒度情感分析。
展开
-
深信服面试常见算法题整理笔记
1 反转链表2 排序3 设计LRU缓存结构4 最小K个数5 求二叉树的层次遍历6 **NC33** **合并两个排序的链表**7 **用两个栈实现队列**8 跳台阶9 求连续子数组的最大和10 判断一个链表是否有环11 删除链表倒数第K个节点(已经考了)12 大小端13 二叉树公共祖先14 二叉搜素树的公共祖先15 **字符串出现次数的TopK问题**16 加起来和位目标值的组合(二)17 连续子数组的最大乘积18 设计一个循环数组原创 2022-12-11 21:12:06 · 1008 阅读 · 0 评论 -
剑指Offer习题整理-查找
查找的习题,大部分方法都可以用二分查找来解。剑指 Offer 03. 数组中重复的数字简单判断class Solution {public: int findRepeatNumber(vector<int>& nums) { // 利用容器存储当前位置的元素 如果有重复则返回 int len = nums.size(); vector<bool> result(len, false); for.原创 2022-02-20 21:45:01 · 184 阅读 · 0 评论 -
剑指Offer习题整理-链表笔记
剑指OFFER根据书本上的习题 整理了所有的链表习题作为复习。原创 2022-02-19 22:52:49 · 388 阅读 · 0 评论 -
剑指Offer习题整理-栈与队列笔记
???? 栈和队列概念栈:先进后出队列:先进先出从Carl哥的代码随想录笔记中make下的一些概念栈与队列的概念抛出的问题:C++中stack 是容器么?我们使用的stack是属于那个版本的STL?我们使用的STL中stack是如何实现的?stack 提供迭代器来遍历stack空间么?栈提供push 和 pop 等等接口,所有元素必须符合先进后出规则,所以栈不提供走访功能,也不提供迭代器(iterator)。 不像是set 或者map 提供迭代器iterator来遍历所有元素。原创 2022-02-18 23:04:55 · 731 阅读 · 1 评论 -
研究生2021年蓝桥杯第二场做题笔记
蓝桥杯比赛题目B 双阶乘C 格点D 整数分解:E 城邦解题思路大题FGHIJ第二场的蓝桥杯确实感觉比第一场的简单多了,整体的感觉不难emm,准备了一天,能做的都做了…天啊 居然漏了第一题第一题 是一个求余的题目 简单得没有看见直接白给填空题全错…记录一下给自己的粗心,希望下次能注意B 双阶乘5分59375先模在乘 C++ 这样才能不溢出听说有同学直接用Python 做这种大数处理的#include<iostream>using namespace std;t原创 2021-05-09 17:10:20 · 869 阅读 · 3 评论 -
2021年第12届蓝桥杯第一场学习笔记
题目目录A 空间B 卡片C 直线D 货物摆放E 路径F 时间显示G: 砝码称重H 杨辉三角I 双向排序A 空间#include<iostream>#include<stdio.h>using namespace std;int main(){ long int a=256*1024*1024/4; cout<<a<<endl; printf("result: %d",a); return 0;}B 卡片#原创 2021-05-08 20:17:38 · 463 阅读 · 0 评论 -
算法复习笔记(三)分治法
算法复习笔记(三)分治法1.引入语分治法划分对策: 子问题与原问题相比:问题性质一致,问题规模不同求解一般分为三个阶段:1.划分:直到问题足够小可以直接求解为止2.求解:3.合并:将子问题的解合并为一个更大规模的问题的解,自底向上逐步求出原问题的解。我们给出下面这个理智引入分治技术⚠️:不是所有的分治法都比简单的蛮力法更有效数值螺旋方阵(非典型例题)直接敷上代码,不做过多结束2.排序问题中的...原创 2020-05-26 17:29:59 · 773 阅读 · 0 评论 -
二分图的最大匹配
为什么增广路算法只适用于二部图一、直观上: 二部图:可以基于左右两侧为边定向 一般图:没有两侧的概念,不好定向二、本质上 二部图中,每个左侧顶点在每一轮搜索只需搜索一次(作为起点,或当前匹配中一条边的终点) 一般图中,可能有奇圈,每一次到达其中的额“左侧”顶点可能是错误地作为不在当前匹配中的一条边的终点,即错误地将其当作“右侧”顶点了图一、图二(图中存在奇圈)面向二部图的H...原创 2020-05-26 17:28:06 · 281 阅读 · 0 评论 -
算法复习笔记(四)减治法
目录:1.减治法的设计思想2,查找问题中的减治法3.组合问题中的减治法1.减治法的设计思想减治法与分治法的区别:不需要对子问题的解合并。计算an的数值2.查找问题中的减治法 2.1折半查找: 基本思想: (1)若给定值与中间记录的关键码相等,查找成功 (2)若给定值少于中间记录...原创 2020-05-26 17:09:38 · 906 阅读 · 0 评论 -
博弈算法理论学习:第1篇 了解博弈搜索以及学习过程
其实网上关于博弈树的内容是相当多的,我们要做的是找到适合自己的材料这段时间也在跟着老师做论文工作,期间也是需要参考大量的论文文献,因此即使是参加博弈赛,目前这个阶段了也还是希望可以尽可能地多看一些文档,以及掌握一些专业术语,提高专业修养,2333 比赛的时候被抽中答辩的话就只能...QAQ后面也将会结合六子棋(19路连六子)一个规则相对简单的棋类,进行分析,,,主要针对的棋类是六子棋。...原创 2018-07-29 23:11:07 · 3045 阅读 · 0 评论 -
走迷宫算法
走迷宫算法// 7-maze.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <iostream>#include <cstdio>using namespace std;int visit(int, int); //迷宫矩阵,2代表墙壁,0代表通道int maze[7][7] = {{2, ...原创 2018-09-16 10:10:17 · 1483 阅读 · 0 评论 -
算法设计与分析——暴力算法关于KMP算法中next函数的详细解析
以下采用的next 数组是从1开始的 并且其他情况的赋值为1 借鉴了两篇优秀的文章作为算法设计分析蛮力法下的kmp知识补充 同感,之前看到数据结构中字符串的模式匹配时,花了半天的时间,才把KMP算法中的next函数整明白了,结果过了几天在看到这时,只记得next[j+1]=next[j]+1,可是有时候能套公式正确算出,有时候就算不对,所以今天再重新理一...转载 2018-05-25 11:29:22 · 728 阅读 · 0 评论 -
算法复习笔记(二)蛮力法
蛮力法的主要应用于遍历部分。遍历数组,遍历集合,遍历二叉树1.下面我们主要讲解一下查找问题中的蛮力法 虽然低效,但是对于查找集合不大的情况下是一种合理的方法1.1 顺序查找:在数组r[1] ~r[n]查找元素kint SeqSearch1(int r[],int n,int k){ int i=n; while(i>0 &&r[i]!=k) ...原创 2018-05-25 11:42:34 · 1255 阅读 · 0 评论 -
算法设计与分析基础-图着色问题
图着色问题图着色问题:求图中的最小色数K,使得k种颜色对G中的顶点着色,可使任意两个相邻顶点上不同的颜色我们先将适用对象限制于二分图中,我们发现二分图只需要两种衍射就可以完成着色,下面我们来验证一下书本里的这么一句话:如果贪心法以1,3,...,2n-1,2,4.....,2n的顺序为二部图着色,则算法可以得到这个最优解,但是如果贪心法以1,2,...,n的自然排序为二部图着色,则算法找到的是一个...原创 2020-05-26 17:11:47 · 1542 阅读 · 0 评论 -
算法复习笔记(四)减治法
减治法部分的初步学习,从下面三个例子:1.折半查找2.二叉树查找3.查找最小数减治法的核心:与分治法不同,减治法只针对其部分子问题进行求解,同时也是采取划分后选择计算的思想补充知识点:中位数:中位数是一个非常具有代表性的数字,我们在现实生活中,通常会选择中位数来代表一部分数据的趋势,相比于平均数更加具有代表性。1.折半查找: #include<iostream> using name...原创 2018-04-25 13:26:21 · 4831 阅读 · 0 评论 -
算法复习笔记(一)算法基础知识
算法基础知识:1.什么是算法 算法是一组有穷的规则,它规定了解决莫一特定类型问题的一系列运算数据结构+算法=程序2.算法的五个重要特性:确定性、可行性、输入、输出、有穷性;一下对其部分特性做定义;1.确定性:算法不能有二义性:例如:不符合确定性的运算 5/0 将6或7与x 相加 为赋值变量参与运算2.可行性: 例如:整数的算数运算是可行实数的算数运算是不可行的 3.输入...原创 2018-05-25 10:11:16 · 1550 阅读 · 0 评论 -
算法复习笔记之重要算法(一)
算法复习笔记之重要算法(一)目录: 1.斐波那契 2.钱币问题主要算法介绍: 一、求斐波那契数列的第N项 1.1 斐波那契数数列的性质: 方法: 1.1.1 递推 1.1.2递归 1.1.3动态规划 1.1.4数学方法 1.1.1递推方法代码:#...原创 2018-05-24 15:13:07 · 371 阅读 · 0 评论 -
算法复习笔记之重要算法(二)
算法复习笔记之重要算法(二)目录: 1.1编写算法求最大子序列和:详细题目以及要求见:acm.hdu.edu.cn/showproblem.php?pid=10031.1.1枚举法 时间复杂度为n的平方,超时int max(int a[],int n){ int i,j,maxsum=0,m; for(i=0;i<n;i++) { m=0;...原创 2018-05-24 16:13:33 · 316 阅读 · 0 评论 -
算法复习笔记(六)贪心算法
序言: 学完动态规划后学习贪心算法,我们会有所感觉动态(dp)有时真的不是初学的同学能相出状态转移方程的,有些问题我们习惯上用贪心算法去解决概述:注意:贪心法并不是从整体最优考虑,它所做出的选择只是在某种意义上的局部最优。 这种局部最优选择并不总能获得整体最优解但通常能获得近似最优解。对于一个具体的贪心问题,怎么知道是否可以达到最优解,这个问题非常难于回答。引入实例一:...原创 2018-06-15 07:54:58 · 1756 阅读 · 0 评论 -
贪心算法算法设计
贪心算法算法设计内容: 0/1背包背包问题任务分配 0/1背包/思想是不难 但主要是处理好double()这部分的位置/*#include<iostream>using namespace std;int w[10]={42,30,10};int v[10]={170,120,50};int c=50;void sort(int w[],int v[],int c){...原创 2018-05-10 14:37:56 · 806 阅读 · 0 评论