算法小题目
wyh20171105
dont let time slip pointlessly
展开
-
关于约瑟夫环的问题
约瑟夫环的问题有n个人围成一圈,顺序排号,从第一个开始报数(从1到3报数),凡报到3的人退出圈子,问最后最后留下的是原来第几号的那位?思路:我们可以使用标志位来区分是否报到3,如果是1就说明报到3了,每次报到最后一个人的时候,我们再重新指到第一个人,这些人我们可以放在一个数组里, 这样一来,一圈下来数组会有很多0和1,第二圈继续这样,每每有一个1,循环次数就要少一次,直到只剩一个人原创 2018-01-22 22:12:26 · 216 阅读 · 0 评论 -
如何逆序输出一个链表的节点内容
1 改变链表结构即改变链表的指向,把所有的指向都反过来,再输出。2 不改变链表结构每遍历一个节点,就把节点的数据放入一个栈里。先进后出的思想。由此想到递归的思想,使用递归来处理。但递归的方法不是很好,当一个链表很长很长时,函数递归的层次很深,势必会导致栈溢出。这里为了举例我就用递归写,代码会很简单,毕竟上万个节点的链表也不会常有。也没必要存那么长,真有那么长的数据用数组加链表的组合原创 2018-01-24 21:28:45 · 561 阅读 · 0 评论 -
如何将英文句子中的单词位置倒置, 而不改变单词内部结构呢?
如何将英文句子中的单词位置倒置, 而不改变单词内部结呢?如“I am from China”倒置为“China from am I” 我的思路是用一个数组记录这句话中每一个空格后的第一个字符的下标,从最后一个空格开始记录 ,然后按照记录的顺序打印,最后添加打印剩余的第一个没有被记入下标数组的字符串。#include using namespace std;void func1(c原创 2018-01-25 22:13:06 · 1762 阅读 · 0 评论 -
如何将一个字符串逆序?
操作下标, 递归存入字符串数组中。//编写函数, 实现字符串逆序#include using namespace std;void func(char *str, char *ptr, int i, int j){ if(str[++i] != '\0') { --j; func(str, ptr , i, j);原创 2018-01-26 21:28:53 · 958 阅读 · 0 评论