算法
文章平均质量分 74
加油
司六米希
ing
展开
-
【剑指offer】搜索篇-含题目代码思路解析
【代码】【剑指offer】搜索篇-含题目代码思路解析。原创 2022-09-28 21:09:54 · 287 阅读 · 0 评论 -
【剑指offer】队列&栈篇-含题目代码思路解析
/只有一个数字5表示从下标为5开始一直到结尾:sub1 = “56789”//从下标为5开始截取长度为3位:sub2 = “567”假设:string s = “0123456789”;原创 2022-09-28 17:18:07 · 314 阅读 · 0 评论 -
【剑指offer】链表篇-含题目代码思路解析
【代码】【剑指offer】链表篇。原创 2022-09-26 15:08:16 · 472 阅读 · 0 评论 -
斐波那契数列
斐波那契数列【别名黄金分割数列、兔子数列】斐波那契数列的特点:第1,2两个数为1,1。从第三个数开始,该数是其前两个数之和。例如: 斐波那契数列:1,1,2,3,5,8,13,21,34,55,89…原创 2022-09-16 23:10:32 · 426 阅读 · 0 评论 -
【刷题】Sum of Digits【1】
【刷题】Sum of Digits【2】一、题目1.题目描述二、解题报告1.思路分析2.代码详解一、题目1.题目描述题目:输入:输出:示例 :提示:In the first sample the number already is one-digit — Herald can’t cast a spell.The second test contains number 10. After one casting of a spell it becomes 1, and原创 2022-06-30 09:38:16 · 150 阅读 · 0 评论 -
【刷题】字符统计【0】
【刷题】字符统计【0】一、题目1.题目描述二、解题报告1.思路分析2.代码详解一、题目1.题目描述题目:给出一个字符集合,请你判断出现的不同字符个数输入:输入一行,长度在1000以内仅包括小写字母、‘{’、‘}’ 和空格输出:输出一行,表示出现的不同字母个数示例 :二、解题报告1.思路分析1.首先将空格取代掉2.排除{},干扰3.计数2.代码详解python👇a=input()while(a.find(" ")>0): a=a.replace(" "原创 2022-06-29 20:50:52 · 104 阅读 · 0 评论 -
OJ输入输出练习
1.3 注意事项通过scanf(“%d %d”,&i,&d)!=EOF来控制输入停止,(EOF为错误识别符)输入变量scanf(“%d %d”,&i,&d)有&地址取值符号,传东西传入时,是传到地址里面保存;而输出 printf(“%d\n”,n)则是不需要&,输出变量的值。因为输入时会赋值给i、d,加法会赋值给n,所以不用int i=0;int d=0;int n=0;这样初始化赋值。注意输出要换行,输入不用换行2. 练习22.1 题目【告知输入组数】2.3 注意事项逗号英文3原创 2022-06-29 10:54:37 · 1515 阅读 · 2 评论 -
【算法分析】简答考核+算法
✨分治法的基本思想✨将一个规模为 n 的问题分解为 k 个规模较小的子问题,这些子问题互相独立且与原问题相同。递归地解这些子问题,然后将各个子问题的解合并得到原问题的解。✨动态规划的基本思想✨将求解的较大规模的问题分割成k个更小规模的子问题。对这k个子问题分别求解。如果子问题的规模仍然不够小,则再划分为k个子问题,如此递归的进行下去,直到问题规模足够小,很容易求出其解为止。如果能够保存已解决的子问题的答案,而在需要时再找出已求得的答案,就可以避免大量重复计算,从而提高计算效率。经分解得到的子问题往原创 2022-06-19 21:34:00 · 182 阅读 · 0 评论 -
【算法分析】算法复杂性分析详解+范例+习题解答
算法中的控制结构指的是各操作之间的执行次序。基本控制结构包括顺序结构、选择结构、循环结构ABCDC A E E C E E A1-8,1-10,1-11,1-6,1-9原创 2022-06-19 18:47:37 · 628 阅读 · 0 评论 -
【算法分析】分支限界法详解+范例+习题解答
下面以一个例子来说明单源最短路径问题:在下图所给的有向图G中,每一边都有一个非负边权。要求图G的从源顶点s到目标顶点t之间的最短路径。解单源最短路径问题的优先队列式分支限界法用一极小堆来存储活结点表。其优先级是结点所对应的当前路长。算法从图G的源顶点s和空优先队列开始。结点s被扩展后,它的儿子结点被依次插入堆中。此后,算法从堆中取出具有最小当前路长的结点作为当前扩展结点,并依次检查与当前扩展结点相邻的所有顶点。如果从当前扩展结点i到顶点j有边可达,且从源出发,途经顶点i再到顶点j的所相应的路径的长度小原创 2022-06-19 16:14:55 · 3412 阅读 · 0 评论 -
【算法分析】贪心法详解+范例+习题解答
== 当待求解问题满足最优子结构性质和贪心选择性质时,贪心策略所求的解一定是整体最优解==顾名思义,贪心算法总是作出在当前看来最好的选择。也就是说贪心算法并不从整体最优考虑,它所作出的选择只是在某种意义上的局部最优选择。希望贪心算法得到的最终结果是整体最优的。贪心算法不能对所有问题都得到整体最优解,但对许多问题它能产生整体最优解。 在一些情况下,即使贪心算法不能得到整体最优解,其最终结果却是最优解的很好近似。贪心算法求解的问题中看到这类问题一般具有2个重要的性质:最优子结构性质和贪心选择性质。✨最优子结构性原创 2022-06-19 12:51:50 · 1187 阅读 · 0 评论 -
【算法分析】动态规划详解+范例+习题解答
递归算法求解问题时,每次产生的子问题并不总是新问题,有些子问题被反复计算多次。这种性质称为子问题的重叠性质动态规划每次总是“自底向上”地求解问题,是否可能存在“多余求解”的情形?是给定n个矩阵{A1A_1A1,A2A_2A2,…,AnA_nAn},其中AiA_iAi与Ai+1A_i+1Ai+1是可乘的,i=1,2 ,…,n-1。如何确定计算矩阵连乘积的计算次序,使得依此次序计算矩阵连乘积需要的数乘次数最少。矩阵连乘计算次序问题的最优解包含着其子问题的最优解。这种性质称为最优子结构性质。具体:计算原创 2022-06-19 12:03:03 · 1382 阅读 · 0 评论 -
【算法分析】回溯法详解+范例+习题解答
以深度优先方式搜索问题解的算法【回溯法是优化的暴力遍历,即一棵树在特定条件作为剪枝函数,树可以提前截掉,省去一些子节点。完全暴力遍历则是需要全部叶子节点都考虑】回溯法:为了避免生成那些不可能产生最佳解的问题状态,要不断地利用限界函数(bounding function)来处死那些实际上不可能产生所需解的活结点,以减少问题的计算量。具有限界函数的深度优先生成法称为回溯法(1)针对所给问题,定义问题的解空间;(2)确定易于搜索的解空间结构;(3)以深度优先方式搜索解空间,并在搜索过程中用剪枝函数避免无效搜索原创 2022-06-17 22:22:49 · 1770 阅读 · 1 评论 -
【算法分析】分治法详解+范例+习题解答
将一个难以直接解决的大问题,分割成一些规模较小的相同问题,以便各个击破,分而治之1.4主定理Master Theorem将待排序元素分成大小大致相同的2个子集合,分别对2个子集合进行排序,最终将排好序的子集合合并成为所要求的排好序的集合。T(n)=Θ(nlogn) 渐进意义下的最优算法给已排好序的n个元素中寻找特定元素xA和B的乘积矩阵C中的元素C[i,j]定义为传统方法:O(n3)【计算时,三个for循环】为了降低时间复杂度,必须减少乘法的次数请设计一个有效的算法,可以进行两个n位大整数原创 2022-06-17 18:37:16 · 3543 阅读 · 4 评论 -
【刷题】uva10954 Add All【3】
@TOC一、题目1.题目描述题目:Fahim likes to solve mathematical problems. But sometimes it becomes challenging for him to solve all the mathematical problems. So sometimes he gets angry to solve mathematical puzzles. He takes a piece of chalk and starts writing a s原创 2022-05-29 20:33:06 · 146 阅读 · 1 评论 -
【leetcode刷题】种花问题【605】
【刷题】【】一、题目1.题目描述二、解题报告1.思路分析2.代码详解一、题目1.题目描述题目:输入:输出:示例 :二、解题报告1.思路分析2.代码详解C++👇class Solution {public: bool canPlaceFlowers(vector<int>& flowerbed, int n) { int count=0; for (int t1=0;t1<flowerbed.size()-2;原创 2022-05-28 20:29:12 · 1095 阅读 · 0 评论 -
【leetcode刷题】分发饼干【455】+数组拆分 I【561】
【leetcode刷题】分发饼干【455】一、题目1.题目描述二、解题报告1.思路分析2.代码详解3.注意事项C++一、题目1.题目描述二、解题报告1.思路分析贪心算法人和饼干都从小到大排序,进行匹配尽量让小饼干给胃口小的人吃【人也贪心,饼干也贪心】KMP算法模式串匹配2.代码详解C++👇【贪心】class Solution {public: int findContentChildren(vector<int>& g, vector<i原创 2022-05-25 19:39:15 · 130 阅读 · 0 评论 -
【leetcode刷题】最长回文串【409】
【刷题】【409leetcode】一、题目1.题目描述二、解题报告1.思路分析2.代码详解一、题目1.题目描述二、解题报告1.思路分析2.代码详解C++👇class Solution {public: int longestPalindrome(string s) { int a[200]={0}; int b=0; int a_count=0; int c=0; for (int t1=0;t1原创 2022-05-23 23:57:25 · 113 阅读 · 0 评论 -
【刷题】统计每个元音字母在字符串中出现的次数【2】
【刷题】统计每个元音字母在字符串中出现的次数【2】一、题目1.题目描述二、解题报告1.思路分析2.代码详解3.注意事项C++一、题目1.题目描述题目:统计每个元音字母在字符串中出现的次数输入:输入数据首先包括一个整数n,表示测试实例的个数,然后是n行长度不超过100的字符串输出:示例 :二、解题报告1.思路分析循环进行通过switch匹配计数2.代码详解C++👇#include<iostream>using namespace std;int mai原创 2022-05-23 14:03:06 · 444 阅读 · 0 评论