卡码专题

【代码随想录训练营第42期 续Day52打卡 - 图论Part3 - 卡码网 103. 水流问题 104. 建造最大岛屿

目录 一、做题心得 二、题目与题解 题目一:卡码网 103. 水流问题 题目链接 题解:DFS 题目二:卡码网 104. 建造最大岛屿 题目链接 题解:DFS  三、小结 一、做题心得 也是成功补上昨天的打卡了。 这里继续图论章节,还是选择使用 DFS 来解决这类搜索问题(单纯因为我更熟悉 DFS 一点),今天补卡的是水流问题和岛屿问题。个人感觉这一章节题对于刚

代码随想录第八天|151.翻转字符串里的单词 卡码网:55.右旋转字符串 28. 实现 strStr() 459.重复的子字符串

反转字符串的单词 思路:刷过稍微忘记 class Solution {public://去除空格string remove(string s){//使用快慢指针int slow=0;int i=0;for(;i<s.size();i++){if(s[i]!=' '){if(slow!=0){s[slow++]=' ';}while(s[i]!=' '&&i<s.size()){s[slow+

【代码随想录训练营第42期 Day50打卡 - dfs入门 - 卡码网 98. 所有可达路径

目录 一、dfs基础 二、模板题 题目:98. 所有可达路径 题目链接 题解:dfs+邻接矩阵  三、小结 一、dfs基础 dfs是按照一个方向搜索到尽头再搜索其他方向。怎样实现对其他方向的搜索呢?我们可以通过回溯,撤销最后一步,再选择其他路线。 -- 回溯过程某种程度上也是递归的体现。所以,实现 dfs 的一个关键就是递归。 之前有了回溯的基础,其实可以发现回溯算法

【卡码网C++基础课 16.出现频率最高的字母】

目录 题目描述与分析一、哈希表二、代码编写 题目描述与分析 题目描述: 给定一个只包含小写字母的字符串,统计字符串中每个字母出现的频率,并找出出现频率最高的字母,如果最高频率的字母有多个,输出字典序靠前的那个字母。 输入描述: 包含多组测试数据,每组测试数据占一行。 输出描述: 有多组输出,每组输出占一行。 输入示例: 2abcdeefaabbccddeeff

【卡码网C++基础课 14.链表的基础操作2】

目录 题目描述与分析代码编写 题目描述与分析 题目描述: 请编写一个程序,实现以下操作: 构建一个单向链表,链表中包含一组整数数据,输出链表中的第 m 个元素(m 从 1 开始计数)。 要求: 1.使用自定义的链表数据结构 2.提供一个 linkedList 类来管理链表,包含构建链表、输出链表元素以及输出第 m 个元素的方法 3.在 main 函数中,创建一个包含一组整数

【卡码网C++基础课 13.链表的基础操作1】

目录 题目描述与分析一、指针二、链表三、定义链表节点四、链表的插入五、代码编写 题目描述与分析 题目描述: 构建一个单向链表,链表中包含一组整数数据。输出链表中的所有元素。 要求: 1.使用自定义的链表数据结构 2.提供一个 linkedList 类来管理链表,包含构建链表和输出链表元素的方法 3.在 main 函数中,创建一个包含一组整数数据的链表,然后调用链表的输出方法将

代码随想录算法训练营第50天|卡码网 98. 所有可达路径

1.卡码网 98. 所有可达路径 题目链接:https://kamacoder.com/problempage.php?pid=1170 文章链接:https://www.programmercarl.com/kamacoder/0098.所有可达路径.html#总结 1.图的存储 本题我们使用邻接表 或者 邻接矩阵都可以,因为后台数据并没有对图的大小以及稠密度做很大的区分。 若是邻接

代码随想录算法训练营第 53 天 |卡码网110.字符串接龙 卡码网105.有向图的完全可达性 卡码网106.岛屿的周长

代码随想录算法训练营 Day53 代码随想录算法训练营第 53 天 |卡码网110.字符串接龙 卡码网105.有向图的完全可达性 卡码网106.岛屿的周长 目录 代码随想录算法训练营前言卡码网110.字符串接龙卡码网105.有向图的完全可达性卡码网106.岛屿的周长 一、卡码网110.字符串接龙1.题目链接2.思路3.题解 二、105.有向图的完全可达性1.题目链接2.思路3.题解

【卡码网C++基础课 12.位置互换】

目录 题目描述与分析一、交换变量二、代码编写 题目描述与分析 题目描述: 给定一个长度为偶数位的字符串,请编程实现字符串的奇偶位互换 输入描述: 输入包含多组测试数据。 输入的第一行是一个整数n,表示有测试数据。(整个输入中,只有一个n) 接下来是n组测试数据,保证串长为偶数位(串长<=50)。 输出描述: 请为每组测试数据输出奇偶位互换后的结果,每组输出占一行。 输入

【卡码网C++基础课 11.句子缩写】

目录 题目描述与分析一、字符大小的比较二、代码编写三、函数的使用四、形参和实参五、引用 题目描述与分析 题目描述: 输出一个词组中每个单词的首字母的大写组合。 输入描述: 输入的第一行是一个整数n,表示一共有n组测试数据。(输入只有一个n,没有多组n的输入) 接下来有n行,每组测试数据占一行,每行有一个词组,每个词组由一个或多个单词组成;每组的单词个数不超过10个,每个单词

【代码随想录算法训练营第42期 第八天 | LeetCode344.反转字符串、541. 反转字符串II、卡码网:54.替换数字】

代码随想录算法训练营第42期 第八天 | LeetCode344.反转字符串、541. 反转字符串II、卡码网:54.替换数字 一、344.反转字符串 解题代码C: void reverseString(char* s, int sSize){int left = 0;int right = sSize - 1;while(left < right) {char temp = s[lef

【卡码网C++基础课 10.平均绩点】

目录 题目描述与分析一、String的使用二、代码编写 题目描述与分析 题目描述: 每门课的成绩分为A、B、C、D、F五个等级,为了计算平均绩点,规定A、B、C、D、F分别代表4分、3分、2分、1分、0分。 输入描述: 有多组测试样例。每组输入数据占一行,由一个或多个大写字母组成,字母之间由空格分隔。 输出描述: 每组输出结果占一行。如果输入的大写字母都在集合{A,B,C

代码随想录算法训练营第九天| 151.翻转字符串里的单词、卡码网55.右旋转字符串 、28. 找出字符串中第一个匹配项的下标、459. 重复的子字符串

Leetcode151.翻转字符串里的单词 题目链接:151. 反转字符串中的单词 C++: class Solution {public:void remove_blank(string &s){int slow = 0;for(int fast=0; fast < s.size(); fast++){if(s[fast] != ' '){if(slow > 0)s[slow++] =

模拟笔试 - 卡码网周赛第三十一期(23年百度笔试真题)

难度适中,动态规划出现的比例还是比较高的,要好好掌握,二分查找的点也是比较灵活的。(A卷和B卷第一道题是一样的) 题目一:讨厌鬼的组合帖子 思路:这个题算是一个还不错的题; 本质就是:一个数组元素选或不选,可以达到的最大绝对值,经典动态规划入门题了,重要的就是能不能看到这个本质。 import java.util.Scanner;public class taoTanGui {pu

代码随想录算法训练营第八天|344.反转字符串、541. 反转字符串II、卡码网:54.替换数字

Leetcode344.反转字符串 题目链接:344. 反转字符串 C++: class Solution {public:void reverseString(vector<char>& s) {for(int i=0, j=s.size()-1; i < s.size()/2; i++, j--)swap(s[i], s[j]);}}; Python: class Solutio

【卡码网C++基础课 3.A+B问题3】

目录 题目描述与分析一、if语句二、关系运算符三、逻辑运算符四、break退出循环五、延伸 题目描述与分析 题目描述: 你的任务依然是计算a+b。 输入描述: 输入中每行是一对a和b。其中会有一对是0和0标志着输入结束,且这一对不要计算。 输出描述: 对于输入的每对a和b,你需要在相应的行输出a、b的和。 如第二对a和b,他们的和也输出在第二行。 输入示例: 2 4

卡码网KamaCoder 105. 有向图的完全可达性

题目来源:105. 有向图的完全可达性 C++题解1: #include <iostream>#include <vector>#include <algorithm>using namespace std;int main(){int N, K;cin>>N>>K;// 如果边的数量不够,则一定不能到达所有点if(N-2 >= K) {cout<<-1; return 0;}// pat

算法训练营第六十七天 | 卡码网110 字符串接龙、卡码网105 有向图的完全可达性、卡码网106 岛屿的周长

卡码网110 字符串接龙 这题一开始用的邻接表+dfs,不幸超时 #include <iostream>#include <list>#include <string>#include <vector>using namespace std;int minLen = 501;bool count(string a, string b) {int num = 0;for (int i

卡码网京东模拟笔试(2023京东真题)

1.题目描述:卡码网132. 夹吃棋 在一个 3 * 3 的棋盘上,小红和小紫正在玩“夹吃棋”。 所谓“夹吃棋”,即如果存在一个白子,它的两侧 (横向或者纵向)相邻都是黑子,则这个棋子将被“夹吃”,对于黑棋亦然。  如果一个棋盘的局面没有一方被夹吃,或者黑白双方都被对面夹吃,则认为是平局。如果只有一方夹吃了另一方,则认为夹吃方赢,被夹吃方输。  小红执黑棋,小紫执白棋,现在给定一个局面,请你

【代码随想录算法训练营第四十三天|卡码网52.携带研究材料、18.零钱兑换II、377.组合总和Ⅳ、卡码网57.爬楼梯】

文章目录 卡码网52.携带研究材料518.零钱兑换II377.组合总和Ⅳ卡码网57.爬楼梯 卡码网52.携带研究材料 这题是完全背包问题,完全背包问题在01背包问题的基础上其实主要是三个不同,第一个是初始化的时候不能再和01背包一样对第一个物品让背包大小大于物品重量的时候全部初始化为物品价值,因为现在的物品可以无限放。第二个就是动态规划内部的循环推导的时候不用倒序而是正序了,因为

卡码网用友提前批笔试 | 121 大数减法、122 滑动窗口最大值、117 软件架构

121 大数减法 一开始这么写,但是就是有90%的数据通过不了 #include <iostream>#include <string>using namespace std;void reverse(string& s,int l, int r) {while (l < r) {char c = s[l];s[l] = s[r];s[r] = c;l++; r--;}}int main

【代码随想录训练营】【Day 44】【动态规划-4】| 卡码 46, Leetcode 416

【代码随想录训练营】【Day 44】【动态规划-4】| 卡码 46, Leetcode 416 需强化知识点 背包理论知识 题目 卡码 46. 携带研究材料 01 背包理论基础01 背包理论基础(滚动数组)01 背包 二维版本:dp[i][j] 表示从下标为[0-i]的物品里任意取,放进容量为j的背包,价值总和最大是多少,注意 遍历和初始化时 n 要取到01 背包 一维版本:dp[j]为

代码随想录算法训练营Day8|541. 反转字符串II、替换数字、151.翻转字符串里的单词、卡码网:55.右旋转字符串

541. 反转字符串II 1.这道题刚开始把题意理解错了,以为对于任意长度的字符串都只反转[0,k-1]以及[2k,3k-1]区间的值。 2.但实际上是要把一个字符串分成若干长度为2k的小区间,反转前[0,k-1]的字符串,[k,2k-1]保持不变; 3.如果有一个区间字符串字符个数小于k,则全部反转。 4.双指针法实现反转比用索引更方便 class Solution {public Stri

算法训练营第四十六天 | 卡码网52 携带研究材料、LeetCode 518 零钱兑换II、LeetCode 377 组合总和IV

写在前面 这次算法训练营题目,其实完全是按照代码随想录一路跟着来的,上面也有更好的、讲得更清楚的题解,有需要的小伙伴可以去那里看。 我这里是之前已经大体刷过一遍,为了应对有可能会考到的面试题,现在在跟着一个专门的、要花钱的训练营补完笔记,加深理解。 下面开始今天的刷题和笔记。 卡码网 52   这题是完全背包问题的典型,完全背包也就是每个物品可以取无限次。   如果用二维d

代码随想录算法训练营第八天| 344.反转字符串、541. 反转字符串II、 卡码网:54.替换数字、151.翻转字符串里的单词、卡码网:55.右旋转字符串

344.反转字符串 题目链接: 344.反转字符串 文档讲解:代码随想录 状态:so easy 题解: public void reverseString(char[] s) {int left = 0, right = s.length - 1;char temp = s[0];while (left <= right) {temp = s[left];s[left] =

卡码网笔试 | 118 小y删数字、119 小红的字符串切割、120 小红的数字匹配

118 小y删数字 逐个数字循环除10,并且用一个变量记录非0位数,最后加起来即可。 代码如下: #include <iostream>using namespace std;int main() {int n;cin >> n;int a[n];int sum = 0;for (int i = 0; i < n; i++) cin >> a[i];for (int i = 0; i < n