【2018年第九届C/C++ A组蓝桥杯省赛真题(python解法)】教程文章相关的互联网学习教程文章

调整数组顺序使奇数位于偶数前面(Python and C++解法)【代码】

题目:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。 示例: 输入:nums = [1,2,3,4]输出:[1,3,2,4] 注:[3,1,2,4] 也是正确的答案之一。 来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/diao-zheng-shu-zu-shun-xu-shi-qi-shu-wei-yu-ou-shu-qian-mian-lcof 思路:使用双指针,类似于二分查找法的操作。 Python解法: 1 class Soluti...

剪绳子(Python and C++解法)【代码】

题目:给你一根长度为 n 的绳子,请把绳子剪成整数长度的 m 段(m、n都是整数,n>1并且m>1),每段绳子的长度记为 k[0],k[1]...k[m-1] 。请问 k[0]*k[1]*...*k[m-1] 可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。 示例 1: 输入: 2输出: 1解释: 2 = 1 + 1, 1 1 = 1示例 2: 输入: 10输出: 36解释: 10 = 3 + 3 + 4, 3 3 4 = 36 来源:力扣(LeetCode)链接:ht...

爬楼梯(Python and C++解法)【代码】

题目: 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数。 来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/climbing-stairs 思路:使用动态规划的基本思想,到第n个台阶的方法等于到n-1和n-2台阶时的方法之和。 Python解法: 1 class Solution:2 def climbStairs(self, n: int) -> int:3 if n==0 or n==1 o...

删除链表的倒数第N个节点(Python and C++解法)【代码】

题目: 给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。 示例: 给定一个链表: 1->2->3->4->5, 和 n = 2. 当删除了倒数第二个节点后,链表变为 1->2->3->5.说明: 给定的 n 保证是有效的。 来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/remove-nth-node-from-end-of-list 思路:采用双指针,前面的指针比后面的指针先多走N+1个节点,当前面的指针到达None时,后面的指针所在位置的下一个节点就...

LeetCode LCP 01. 猜数字 多种语言解法 C/C++/Python/Java【代码】

LeetCode LCP 01. 猜数字 多种语言解法 C/C++/Python/Java??大家好,我叫亓官劼(q guān ji ),在CSDN中记录学习的点滴历程,时光荏苒,未来可期,加油~博客地址为:亓官劼的博客本文原创为亓官劼,请大家支持原创,部分平台一直在盗取博主的文章!!!博主目前仅在CSDN中写博客,唯一博客更新的地址为:亓官劼的博客题目 难度 简单 小A 和 小B 在玩猜数字。小B 每次从 1, 2, 3 中随机选择一个,小A 每次也从 1, 2, 3 中选择一个...

python调用C++ dll【代码】【图】

python和C++可以相互调用,例如,我用VS2019写了一个CMATHDLL.dll, 实现了python调用C++ dll. 一 创建C++ dll工程 .hextern "C" CMATHDLL_API int add(int a, int b);extern "C" CMATHDLL_API int sub(int a, int b); .cppCMATHDLL_API int add(int a, int b) {return a + b; }CMATHDLL_API int sub(int a, int b) {return a - b; } 把生成的dll放到python程序目录二 导入ctypes模块 python需要使用ctypes模...

PAT-1002 A+B for Polynomials 解答(C++/Java/python)【代码】

1.Description: This time, you are supposed to find A+B where A and B are two polynomials. Notes: Each case occupies 2 lines. K N?1?? a?N?1???? N?2?? a?N?2???? ... N?K?? a?N?K????.1≤K≤10,0≤Nk<?<N?2<N?1??≤1000.For each test case you should output the sum of A and B in one line, with the same format as the input. Notice that there must be NO extra space at the end of each line. Please be accur...

使用C++实现kmeans并使用Python可视化聚簇结果【代码】

文章目录C++实现过程算法流程数据结构设计代码:Python可视化过程部分截图 注: 本文代码及方法仅供参考,请勿直接使用 C++实现过程 算法流程 kmeans - 点作为数据,cluster是点的聚簇 BEGIN选出来 k 个点作为中心点生成聚簇循环计算点与聚簇的距离每个点加入到距离最近的聚簇中更新聚簇中心点聚簇中心点未变 或 循环次数足够?退出输出聚簇 END数据结构设计 为了设计出更为通用的结构,选择采用OOP面向对象设计,结构比较复杂,尤其...

数组排序返回索引-python和c++的实现【代码】

返回一个数组排序后的索引经常在项目中用到,所以这里总结一下c++和python两种语言的实现。 Python#!/usr/local/bin/python3a=[2,3,4,5,63,4,32,3]# ascending #sorted sorted_indx = [idx for idx,v in sorted(enumerate(a), key=lambda x: x[1])] print("ascending sorted:", sorted_indx)#numpy import numpy as np sorted_indx = np.argsort(a) print("ascending argsort:", sorted_indx)# descending #sorted sorted_indx = ...

并查集 C++版本 Python版本【代码】

AcWing 836. 合并集合 https://www.acwing.com/problem/content/838/ 一共有n个数,编号是1~n,最开始每个数各自在一个集合中。 现在要进行m个操作,操作共有两种:“M a b”,将编号为a和b的两个数所在的集合合并,如果两个数已经在同一个集合中,则忽略这个操作; “Q a b”,询问编号为a和b的两个数是否在同一个集合中;输入格式 第一行输入整数n和m。 接下来m行,每行包含一个操作指令,指令为“M a b”或“Q a b”中的...

滑动窗口(单调队列) C++版 Python版本【代码】

AcWing 154 滑动窗口 https://www.acwing.com/problem/content/156/ 给定一个大小为n≤106n≤106的数组。 有一个大小为k的滑动窗口,它从数组的最左边移动到最右边。 您只能在窗口中看到k个数字。 每次滑动窗口向右移动一个位置。 以下是一个例子: 该数组为[1 3 -1 -3 5 3 6 7],k为3。窗口位置最小值最大值[1 3 -1] -3 5 3 6 7 -1 31 [3 -1 -3] 5 3 6 7 -3 31 3 [-1 -3 5] 3 6 7 -3 51 3 -1 [-3 5 3] 6 7 -3 51 3 -1 -3 [5 3 ...

静态单链表 C++版本 Python版本【代码】

AcWing 826单链表 https://www.acwing.com/problem/content/828/ 实现一个单链表,链表初始为空,支持三种操作: (1) 向链表头插入一个数; (2) 删除第k个插入的数后面的数; (3) 在第k个插入的数后插入一个数 现在要对该链表进行M次操作,进行完所有操作后,从头到尾输出整个链表。 注意:题目中第k个插入的数并不是指当前链表的第k个数。例如操作过程中一共插入了n个数,则按照插入的时间顺序,这n个数依次为:第1个插入的数,第...

刷题笔记:把数组排成最小数(C++ && python)

剑指offer刷题: 题目描述: 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。 思路: 先将数字转换成字符串再进行比较,因为需要串起来进行比较。比较完之后,按顺序输出即可。 若ab > ba 则 a 大于 b, 若ab < ba 则 a 小于 b, 若ab = ba 则 a 等于 b; 知识补充: Sort()函数: 头文件:#include<...

二维差分 C++版本 python版本【代码】

AcWing 798差分矩阵 https://www.acwing.com/problem/content/800/ #include <iostream> #include <cstdio> #include <algorithm>using namespace std;const int N = 1005;int a[N][N]; int b[N][N];void sert(int x1, int y1, int x2, int y2, int c) {b[x1][y1] += c;b[x2+1][y1] -= c;b[x1][y2+1] -= c;b[x2+1][y2+1] += c; }int main() {int n, m, q;cin >> n >> m >> q;for(int i = 1; i<= n; ++ i)for(int j = 1; j <= m; ...

一维差分 C++版本 python版本【代码】

AcWing 797 差分 https://www.acwing.com/problem/content/799/ #include <iostream> #include <cstdio> #include <algorithm>using namespace std;const int N = 1e5 + 5;int a[N], b[N];void insert(int L, int R, int c) {b[L] += c;b[R + 1] -= c; }int main() {int n, m;cin >> n >> m;for(int i = 1; i <= n; ++ i){cin >> a[i];insert(i, i, a[i]);}while(m --){int L, R, c;cin >> L >> R >> c;insert(L, R, c);}for(int...