C语言算法题
C语言算法题
谁在夜里看海.
Idea Worth Spreading.
大家好!我是一名在校大学生,立志成为一名伟大的C++研发工程师,欢迎大家和我一起交流沟通哦~~
展开
-
字符串之左旋问题
如图所示,先将第一个字符赋给tmp,其次后面元素整体往前移一个单位,再把tmp赋给最后一个字符。可以将一个字符串循环左旋,每循环一次判断一次,直到左旋结束。可以先逆序AB,再逆序CDEF,变成"BAFEDC"假设字符串为"ABCDEF",k=2;然后再整体逆序变为"CDEFAB"2.判断两个字符串是否存在左旋关系。k=3,4,5也同理。原创 2023-02-03 18:59:17 · 297 阅读 · 0 评论 -
(C语言之递归运用)计算一个数的每位之和(递归实现)
不过这里不用递归依然可以容易地实现,但是平时刷题时偶尔尝试着用递归,用多了就熟练了,碰到一般方法实现不了的时候就可以试着用递归。例如,调用DigitSum(1729),则应该返回1+7+2+9,它的和是19。再然后: 1+7+3+9。其次是: 17+3+9。输入一个数如:1739,想要输出它的每一位之和即:1+7+3+9。那么可以把它先拆分成: 173+9。输入:1729,输出:19。废话不多说直接上代码。原创 2022-11-09 22:12:05 · 1408 阅读 · 0 评论 -
算法练习:《跳水冠军》《谁是凶手》
每个人的供词都可以看做一个逻辑语句判断,按照题目要求,四条语句相加结果应该是3。因为每一位选手都有五种可能,所以用for循环列出所有情况。运行结果是:a=3,b=1,c=5,d=2,e=4。每位选手说对了一半,用if语句进行转译。运行结果是:凶手是:C。原创 2023-02-01 16:18:09 · 224 阅读 · 0 评论 -
杨氏矩阵(涉及对角查找)
此时的代码存在一个问题,find_k函数完成了对坐标的打印,但如果我们想要获得坐标而不直接打印呢,直接return坐标显然不行,因为坐标由两个值构成,那我们可不可以从传参入手呢?题目要求时间复杂度小于O(N),那么就不能使用顺序查找,因为假设要查找的数字是N,那么最快的情况就是N在矩阵中,需要查找N次,此时时间复杂度=O(N)。而左上和右下是:每一行的最小值(或最大值)以及每一列的最小值(或最大值)。因为右上和左下都有一个特点:每一行(或列)的最大值以及每一列(或行)的最小值;假设我们要找的数字是7。原创 2023-02-03 15:55:25 · 204 阅读 · 0 评论