
算法
文章平均质量分 67
刷题
Ming_Chens
简单纯粹
展开
-
递推与递归
递归与递推原创 2024-02-15 11:42:40 · 394 阅读 · 0 评论 -
python中的浅拷贝与深拷贝(与c++的对比)
最近在系统的学习python的过程中的发现好多博客所写的python中的浅拷贝和深拷贝的区别都是错误的(都理解成了c++中的浅拷贝和深拷贝),在此记录。原创 2024-02-05 13:23:55 · 337 阅读 · 0 评论 -
二分算法(超详细)
给定一个按照升序排列的长度为 n 的整数数组,以及 q 个查询。对于每个查询,返回一个元素 k 的起始位置和终止位置(位置从 0 开始计数)。如果数组中不存在该元素,则返回 -1 -1。输入格式第一行包含整数 n 和 q,表示数组长度和询问个数。第二行包含 n 个整数(均在 1∼10000 范围内),表示完整数组。接下来 q 行,每行包含一个整数 k,表示一个询问元素。输出格式共 q 行,每行包含两个整数,表示所求元素的起始位置和终止位置。如果数组中不存在该元素,则返回 -1 -1。原创 2023-09-12 15:48:59 · 479 阅读 · 0 评论 -
算法基础:归并排序(超详细)
给定你一个长度为 n 的整数数列。请你使用归并排序对这个数列按照从小到大进行排序。并将排好序的数列按顺序输出。输入格式输入共两行,第一行包含整数 n。第二行包含 n 个整数(所有整数均在 1∼109 范围内),表示整个数列。输出格式输出共一行,包含 n 个整数,表示排好序的数列。数据范围1≤n≤100000输入样例:53 1 2 4 5输出样例:1 2 3 4 5。原创 2023-09-11 14:35:03 · 418 阅读 · 0 评论 -
高精度加减法(超详细)
给定你一个长度为 n 的整数数列。请你使用快速排序对这个数列按照从小到大进行排序。并将排好序的数列按顺序输出。输入格式输入共两行,第一行包含整数 n。第二行包含 n 个整数(所有整数均在 1∼109 范围内),表示整个数列。输出格式输出共一行,包含 n 个整数,表示排好序的数列。数据范围1≤n≤100000输入样例:53 1 2 4 5输出样例:1 2 3 4 5。原创 2023-09-11 14:18:19 · 552 阅读 · 0 评论 -
快慢指针的应用总结
快慢指针快慢指针中的快慢指的是移动的步长,即每次向前移动速度的快慢。例如可以让快指针每次沿链表向前移动2,慢指针每次向前移动1次。快慢指针的应用(1)判断单链表是否存在环如果链表存在环,就好像操场的跑道是一个环形一样。此时让快慢指针都从链表头开始遍历,快指针每次向前移动两个位置,慢指针每次向前移动一个位置;如果快指针到达NULL,说明链表以NULL为结尾,没有环。如果...原创 2020-03-24 21:38:33 · 227 阅读 · 0 评论 -
算法篇:分治法求线性表中第k小的数
//第k小的数/*算法思想:先进行一次快速排序,根据快速排序作为基准的那个数字排序后的位置,来确定我们要找的第k小的那个数在当前位置的左边还是右边,如果在左边就往左递归,在右边同理。直到作为基准的那个数的位置的下标刚好是(k-1)(默认下标从零开始),证明已经找到了第k小的数,返回它就ok。*/#include "tou.h"using namespace std;int n = 0, k = 0;int sort1(int a, int b,std::vector<int> &a原创 2020-05-11 22:33:22 · 845 阅读 · 0 评论 -
用递归和分治分别实现求线性表中的最大数
//1.递归实现/*算法设计思想:将线性表平均分为两部分,分别求出这两部分的最大值,最后得出的最大值是左右两部分最大值的最大值,递归思想体现在每一个部分都可以分为两部分,求出最大值。*/#include"tou.h"usingnamespacestd;intMax(inta, intb, vector<int>&num1) {inti = a, j = b;intmaxx, max1, max2,mid;if(i == j) ret...原创 2020-05-11 23:57:24 · 563 阅读 · 0 评论 -
算法篇:贪心算法解决田忌赛马问题
/*田忌赛马:贪心算法问题分析这是一道很经典的贪心算法入门题。这道题贪心的思想是要把每一匹马的作用发挥到最大,把已方赢的概率增加到最大.我是从双方慢马的角度来分析的,其实快马和慢马的思路差不多。用田忌最慢的马与王最慢的马相比较:1.如果田忌的慢马比王的慢马要快果断把先用田忌的慢马先赢一把(这样赢是代价最小的)2.如果田忌的慢马比王的慢马要慢果断把这匹慢马与王最快的马比赛(因为反正都要输,这样我输的价值更大,因为我把最快的马比下去了,可以增加后面其他马赢的机会)..原创 2020-09-02 16:02:47 · 4194 阅读 · 3 评论 -
算法篇:贪心算法判断回文移动次数
A palindrome is a string of symbols that is equal to itself when reversed. Given an input string, not necessarily a palindrome, compute the number of swaps necessary to transform the string into a palindrome. By swap we mean reversing the order of two adja原创 2020-09-02 15:39:08 · 320 阅读 · 0 评论 -
算法篇:卡塔兰数的两种实现方法(解决凸多边形共有多少三角划分问题)
//卡特兰数递归实现:超时/*#include<iostream>usingnamespacestd;intcatalan(intn){if(n==1)return1;if(n==2)return1;intres=0;for(inti=1;i<=n-1;i++){res+=catalan(i)*catalan(n-i);}re...原创 2020-09-02 22:20:56 · 594 阅读 · 0 评论 -
算法篇:二维动态规划问题
题目:给定一个NxM的矩阵A和一个整数K,小Hi希望你能求出其中最大(元素数目最多)的子矩阵,并且该子矩阵中所有元素的和不超过K。Input第一行包含三个整数N、M和K。以下N行每行包含M个整数,表示A。对于40%的数据,1 <= N, M <= 10 对于100%的数据,1 <= N, M <= 250 1 <= K <= 2147483647 1 <= Aij<= 10000Output满足条件最大的子矩阵所包含的元素数..原创 2020-08-30 20:33:43 · 765 阅读 · 0 评论