编程强训
文章平均质量分 69
…狂奔的蜗牛~
孤独成就算法
展开
-
【编程强训11】最近公共祖先+求最大连续bit数
将一棵无穷大满二叉树的结点按根结点一层一层地从左往右编号,根结点编号为1。现给定a,b为两个结点。设计一个算法,返回a、b最近的公共祖先的编号。注意其祖先也可能是结点本身。2,3返回:1最近公共祖先表示距离两个节点最近的公共父节点,这道题考察二叉树。题目所描述的满二叉树举例如下:我们以2和7为例,寻找2、7的最近公共祖先。我们知道上述树中子节点与父节点之间的关系为root = child / 2,将a=2,b=7所以如果a!......原创 2022-08-31 09:08:19 · 281 阅读 · 0 评论 -
【编程强训12】二进制插入+查找组成一个偶数最接近的两个素数
给定两个32位整数n和m,同时给定i和j,将m的二进制数位插入到n的二进制的第j到第i位,保证n的第j到第i位均为零,且m的二进制位数小于等于i-j+1,其中二进制的位数从0开始由低到高。返回:1100以测试样例为例n=1024;m=19;j=2;i=6要把n的二进制值插入m的第j位到第i位,只需要把n先左移j位,然后再进行或运算(|)即可。或者呢,从低位开始先取到m的每一位,分别插入到n中对应的位置。.........原创 2022-09-01 08:44:59 · 262 阅读 · 0 评论 -
【编程强训5】 连续最大和+统计回文
【描述】 一个数组有 N 个元素,求连续子数组的最大和。输入描述: 输入为两行。 第一行一个整数n(1原创 2022-07-13 19:06:17 · 128 阅读 · 0 评论 -
【编程强训4】计算糖果+进制转换
【描述】 A,B,C三个人是好朋友,每个人手里都有一些糖果,我们不知道他们每个人手上具体有多少个糖果,但是我们知道以下的信息:这四个数值.每个字母代表每个人所拥有的糖果数.现在需要通过这四个数值计算出每个人手里有多少个糖果,即A,B,C。这里保证最多只有一组整数A,B,C满足所有题设条件。输入描述: 输入为一行,一共4个整数,分别为A - B,B - C,A + B,B + C,用空格隔开。 范围均在-30到30之间(闭区间)。输出描述: 输出为一行,如果存在满足的整数A,B,C则按顺序输出A,B,C,用空原创 2022-07-13 17:13:54 · 110 阅读 · 0 评论 -
【编程强训10】井字棋+密码强度等级
【解题思路】: 我们以三行三列为例:井字棋有四种情况表示当前玩家获胜,1代表当前玩家棋子下面代码适用任何情况: 2.密码强度等级 --》链接 【解题思路】: 这里对于不同种类的字符得分不同,同学们可以现对每一个维度进行单独判断,即对于长度,字母,数字,符号单独判断,最后把所有的单项值根据题目要求相加,输出对应的安全级别.......原创 2022-07-08 13:20:02 · 252 阅读 · 0 评论 -
【剑指 Offer】从尾到头打印链表(栈思想)+ 数组中重复的数字(哈希映射)
【解题思路】:代码实现: 2.从尾到头打印链表 --》链接 【解题思路1】: 其实看到这个题目的直觉就是把链表里面的数据放入一个数组中,然后将数组的数据反一下就可以.代码: 【解题思路2】: 但是这样会多定义一个数组来存储数据使得空间复杂度增加,所以不实用。看到数据进去和出来顺序反着肯定想到的就是栈了,所以我们定义一个栈先把数据押入栈中,然后在将栈的数据存储的数组中即可。...原创 2022-07-07 11:14:01 · 175 阅读 · 0 评论 -
【编程强训9】走方格的方案数(递归)+另类加法(位运算)
本题为求取路径总数的题目,一般可以通过递归求解,对于复杂的问题,可以通过动态规划求解。此题比较简单,可以通过递归解答。解题思路:我们以上面的n * m(3 * 3)的格子进行解释有两种情况:所以此题可以通过递归实现,情况a为递归的终止条件。代码实现: 2.另类加法–》链接 【题目解析】【解题思路】:本题可以通过位运算实现,具体实现如下:两个数求和,其实就是 求和后当前位的数据+两个数求和的进位 例如: 1 + 2 两者相加,则得到: 00000011 就是32 + 2 相加后得到: 00000100原创 2022-07-06 23:30:33 · 297 阅读 · 0 评论 -
【编程强训3】字符串中找出连续最长的数字串+数组中出现次数超过一半的数字
【解题思路】: 遍历字符串,使用cur去记录连续的数字串,如果遇到不是数字字符,则表示一个连续的数字串结束了,则将数字串跟之前的数字串比较,如果更长,则更新更长的数字串更新到res。代码实现: 2.数组中出现次数超过一半的数字 -> 链接 【解题思路1】:代码实现: 【解题思路2】:代码实现:...原创 2022-06-30 19:27:53 · 171 阅读 · 0 评论 -
【编程强训2】排序子序列+倒置字符串
【题目解析】:【解题思路】:【本题注意点】:本题开始a[i+1]与a[i]进行比较,为了避免越界,数组定义为n+1个,同时给a[n] = 0; a[n] = 0带来的影响,我们分为三种情况讨论:也就是说数组最后一个位置多增加一个0,不会影响第1、2情况的判断,主要是帮助第3情况的正确判断。代码实现: 2.倒置字符串 -> 链接 【题目解析】: 本题题意很简单,就是将一段字符串中的前后单词交换,以单词为单位逆置。【解题思路1】:先将整个字符串逆置过来,再遍历字符串,找出每个单词,对单词逆置。这里我们使用了st原创 2022-06-30 09:12:35 · 168 阅读 · 0 评论 -
【编程强训】删除公共字符(哈希映射)+组队竞赛(贪心)
【解题思路】:将第二个字符串的字符都映射到一个hashtable数组中,用来判断一个字符在这个字符串。判断一个字符在第二个字符串,不要使用删除,这样效率太低,因为每次删除都伴随数据挪动。这里可 以考虑使用将不在字符添加到一个新字符串,最后返回新新字符串。 ...原创 2022-06-28 13:11:03 · 185 阅读 · 0 评论
分享