笔试面试题
rugu-sco
记得一定要快乐
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
序列的子集
A B 两个有序的序列 判断 B 是否为 A 的子集 例如 : A = [1, 3, 3, 5, 7, 7, 9] B = [1, 3, 5, 7] 则 B 为 A 的子集 解法一 双重循环 , 判断 B 中的每个元素是否在 A 中出现 解法二 一次遍历 因为是有序的序列 , 所以可以从两个序列的第一个元素开始比较 如果元素相等 , 下标同时往后 + 1 , 如果 A ...原创 2018-09-15 23:47:39 · 535 阅读 · 0 评论 -
重建二叉树
重建二叉树 给定一个前序遍历序列和一个中序遍历序列 构建一棵二叉树 思路: 前序的第一个节点一定是 根节点, 根据前序的第一个节点创建根节点 找到根节点以后再根据根节点的值去中序序列中找根节点的位置 根节点的左边就是左子树, 右边就是右子树 然后递归构建左右子树 /** * Definition for binary tree * struct TreeNode { * ...原创 2018-08-13 17:05:21 · 317 阅读 · 0 评论 -
leetcode-56 合并区间
合并区间 给出一个区间的集合,请合并所有重叠的区间。 示例 1: 输入: [[1,3],[2,6],[8,10],[15,18]] 输出: [[1,6],[8,10],[15,18]] 解释: 区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6]. 区间是一个结构体 /** * Definition for an interval. * struct Inter...原创 2018-08-13 15:46:19 · 524 阅读 · 0 评论 -
岛屿问题
岛屿个数问题 1 是陆地, 0 是水, 只考虑上下左右四个方向相邻 例如: 输入: 11110 11010 11000 00000 输出: 1 思路: 遍历二维数组, 如果是 1, 就把它上下左右都感染为 2, 岛屿个数 +1 遍历完成, 最后返回岛屿个数 感染的时候可以用递归 class Solution { public: int numIslands(vect...原创 2018-08-12 16:12:13 · 4533 阅读 · 0 评论 -
两个链表第一个公共节点
两个链表第一个公共节点 方法一 : 先让长的链表的指针先走长的之差的步数, 两个再一起走, 如果相遇就是第一个公共节点 如果没交点, 就都走到空 /* struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { ...原创 2018-08-02 11:45:11 · 326 阅读 · 0 评论 -
合并两个有序的链表
合并两个有序的链表 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 1. 递归版本 根据上面的图得到 , 先创建一个新的结点 , 然后比较两个链表的第一个节点 , 哪个节点的值小 , 就作为新的头节点 /* struct ListNode { int val; struct ListNode *next; L...原创 2018-07-31 21:27:44 · 348 阅读 · 0 评论 -
青蛙跳台阶
青蛙跳台阶 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 解法一 : 每一个台阶都有两种选择 : 跳或者不跳 第一个台阶必须跳 , 所以只有 n - 1 个台阶需要选择 那么就是 2^(n - 1) class Solution { public: ...原创 2018-07-31 19:12:49 · 287 阅读 · 0 评论 -
不用加减乘除做加法
不用加减乘除做加法 1. 利用自增自减 class Solution { public: int Add(int num1, int num2) { if(num1 > 0) { while(num1--) { num2++; }...原创 2018-07-30 15:05:55 · 256 阅读 · 0 评论 -
LeetCode_103. Binary Tree Zigzag Level Order Traversal
LeetCode_103 Binary Tree Zigzag Level Order Traversal 给定一个二叉树,返回其节点值的锯齿形层次遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。 例如: 给定二叉树 [3,9,20,null,null,15,7] 返回锯齿形层次遍历如下: [ [3], [20,9], [15,...原创 2018-07-16 14:54:48 · 225 阅读 · 0 评论 -
二叉树最小深度&根据遍历结果构建二叉树
leetcode_01 minimum-depth-of-binary-tree 求二叉树的最小深度 class Solution { public: int run(TreeNode *root) { if(root == NULL) { return 0; } if(root-&g...原创 2018-06-27 14:09:27 · 384 阅读 · 0 评论 -
剑指Offer_66_构建乘积数组
题目描述: 给定一个数组 A[0, 1, 2, 3, ... , n-1] 请构建一个数组 B[0, 1, 2, 3, ... , n-1] 条件为 B[i] = A[0]*A[1]*A[2]*...*A[i-1]*A[i+1]*...*A[n-1] 限制: 不能使用除法 ! 也就是说 B[i] 等于 A 数组中除 A[i] 以外的其他所有元素之积 思路1: 先来举例分析一下 例如...原创 2018-06-07 17:45:08 · 372 阅读 · 0 评论 -
最长回文子串
最长的回文子串 1. 暴力解法 // 1. 暴力解法 // 时间复杂度 O(N^3) // 判断str[i...j]是否是回文串 bool isPalindrome(const char *str, int begin, int end) { while (begin <= end) { if (str[begin] == str[end])...原创 2018-09-16 17:59:12 · 266 阅读 · 0 评论
分享