摘要: 1.1 怎么回事啊 !!! 在学习书上或者网上的代码的时候,经常会出现一种困惑: 那就是初看代码,诶,我好像懂了诶。 但是要开始写的时候,就比较难下手了。 我这个时候经常想:我刚刚,不是学过了吗?没学会吗哈哈哈哈。要不再来一遍? 实际上多来几遍确实可以达到效果。但是那会流失很多时间,并且个人觉得有点 阅读全文
posted @ 2025-10-28 21:53 lessandmore 阅读(12) 评论(0) 推荐(0)
摘要: 1.1 题目描述 输入的第一行中有3个整数n, m,k,表示A矩阵是n行m列,B矩阵是m行k列。接下来的n行,每行m个数字,表示矩阵A中的元素。接下来的m行,每行k个元素,表示矩阵B中的元素。 【样例输入】 3 2 3 1 1 1 1 1 1 1 1 1 1 1 1 【样例输出】 2 2 2 2 2 阅读全文
posted @ 2025-10-28 17:07 lessandmore 阅读(22) 评论(0) 推荐(0)
摘要: 给定一个长度为n的整数数组nums,要求必须使用【归并排序】的方法将该数组升序排序。 1.1 归并排序 分:将数组分成多个小数组,直到只有一个元素。 治:自底向上合并小数组(merge) 1.2 代码 将 arr [n1+n2] 数组分为两个小数组:L [n1], R [n2] merge算法: i 阅读全文
posted @ 2025-10-27 23:25 lessandmore 阅读(11) 评论(0) 推荐(0)
摘要: 难题被逐层拆解,每一次的拆解都使它变得更为简单。分而治之揭示了一个重要的事实:从简单做起,一切都不再复杂。 1.1 分治算法 分治 是一种非常常见的算法策略。 分:将整个问题划分为多个小问题。 治:从小问题开始,自底至顶将子问题合并成原来的问题。 1.2 分治的效率 分治往往可以提高效率。 降低时间 阅读全文
posted @ 2025-10-27 22:44 lessandmore 阅读(11) 评论(0) 推荐(0)
摘要: 简介 给出n个元素的数组,希望找出其中数量超过 n/2 的元素。注意是>,不是>=。 题目保证一定有多数元素,但是这里给出了没找到多数元素的情况。 时间复杂度O(n) 法一:遍历计数 对每个出现的元素都遍历一遍,求出其次数。 或者通过链表,在节点里面加上元素出现次数这个信息,寻找节点里面count最 阅读全文
posted @ 2025-10-27 13:32 lessandmore 阅读(24) 评论(0) 推荐(0)
摘要: 排列简介 全排列,有顺序要求。 递归实现 如何实现 查找第u位置有哪些数字可以用,选择查到的第一个,填上去。 if(u > n){ for(int i=1;i<=n;i++) cout<<path[i]<<" "; cout<<endl; } 再去填写下一个数字。 什么时候不再填写,也就是递归终止了 阅读全文
posted @ 2025-10-24 19:15 lessandmore 阅读(14) 评论(0) 推荐(0)
摘要: 基数排序简介 只讨论非负整数 认为个位,十位分别是一个关键字 时间复杂度 O(KN)线性 高位优先(不好) 先按照高位升序排序,依次进行下去,直到排到最低位。 因为高位有一个分组的动作,在每个组里面对低位再排序。可以用递归。实际上,完全可以用低位排序。 低位排序(好) 首先按照个位数字进行一次 稳定 阅读全文
posted @ 2025-10-23 21:13 lessandmore 阅读(216) 评论(5) 推荐(1)