
试题演练
文章平均质量分 56
坚持学习.
天行健,君子以自强不息;地势坤,君子以厚德载物
展开
-
c++(练习题)————数组中只出现了一次的数字
一、题目介绍:一个整形数组里,存在两个只出现过一次的数字,其他数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度时O(n),空间复杂度时O(1)。例如输入数组{ 1, 2, 3, 4, 5, 6, 7, 8, 9, 9, 8, 7, 6, 5, 4,3 },只有1和2出现了一次,其他数字都出现了两次,所以输出1、2。二、分析:1、看到这个题,我们的第一想法就是排序,只要将...原创 2019-01-17 17:34:17 · 2555 阅读 · 2 评论 -
c++(练习题)————构建二叉树(给出二叉树的前序遍历和中序遍历的结果,请重建出该二叉树)
题目描述:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。题目分析:1、由题目可知,用前序序列和中序序列来确定出二叉树的结构;2、前序序列的第一个结点一定为根节点,所以在中序序列中,此根节点的左边都在二叉...原创 2019-04-08 20:52:01 · 384 阅读 · 0 评论 -
c++(练习题)————合并单链表(输入两个单调递增的链表,输出两个链表合成后的链表)
题目描述:输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。题目分析:两个递增的单链表结点,用类似于插入排序的方法,找到单链表1结点在单链表2中合适的位置,然后插入。代码实现:/*struct ListNode {int val;struct ListNode *next;ListNode(int x) : val(x),...原创 2019-04-08 20:57:31 · 761 阅读 · 0 评论 -
c++(练习题)————逆置单链表(原地逆置)
题目描述:输入一个链表,反转链表后,输出新链表的表头。题目分析:方法一:利用栈先进后出的特性,将单链表逆置;方法二:利用指针,将单链表原地逆置;代码实现:/* struct ListNode {int val;struct ListNode *next;ListNode(int x) : val(x), next(NULL) {}};*/class So...原创 2019-04-08 21:22:15 · 2107 阅读 · 1 评论 -
c++(练习题)————罗马数字与整数的相互转换
一、题目描述:罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符与数值的对应关系如下:I -> 1, V -> 5, X -> 10, L -> 50, C -> 100, D -> 500, M -> 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 ...原创 2019-04-08 21:31:51 · 4293 阅读 · 3 评论 -
c++(练习题)————0到整数n之间,对应二进制数是回文的整数的个数
题目描述:输入一个整数n,判断从0到这个整数n之间,有多少个整数对应的二进制数是回文的示例:输入:7输出:5题目分析:方法一:看到这个题,我们首先想到的是整数回文或者字符串回文,所以我们就会用最简单粗暴的办法,求出每个整数的二进制数,然后判断它是不是回文(时间复杂度是O(n^2))。方法二:上述方法时间复杂度是偏大的,在考试中是不可能100%通过的,所以我们就要找出这些回文二进制数的...原创 2019-04-18 17:32:35 · 813 阅读 · 0 评论 -
c++(练习题)————删除单链表倒数第k个结点
题目描述:给定一个链表,删除链表的倒数第 k 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 n 保证是有效的。进阶:你能尝试使用一趟扫描实现吗?题目分析:不使用额外空间,且一次遍历删除节点;使用双指针,...原创 2019-05-08 20:36:03 · 1277 阅读 · 0 评论 -
c++(练习题)————两数之和
题目描述:给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0...原创 2019-05-16 22:37:26 · 1107 阅读 · 0 评论 -
c++(练习题)————无重复字符的最长子串
题目描述:给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3:输入: “pwwkew”输出: 3解释: 因为无重复字符的最长...原创 2019-05-16 22:33:50 · 644 阅读 · 0 评论