随笔分类 -  offer 刷题

摘要:// 面试题48:最长不含重复字符的子字符串 // 题目:请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子 // 字符串的长度。假设字符串中只包含从'a'到'z'的字符。 #include <string> #include <iostream> 动态规划 int longestSubstringWithoutDuplication_2(const std::string& str 阅读全文
posted @ 2019-09-09 17:29 高颖1995 阅读(1002) 评论(0) 推荐(0)
摘要:给定 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线, 垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 说明:你不能倾斜容器,且 n 的值至少为 2。 图 阅读全文
posted @ 2019-09-09 16:36 高颖1995 阅读(176) 评论(0) 推荐(0)
摘要:. 题目 给定一个带有头结点 head 的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。 示例 1:输入:[1,2,3,4,5]输出:此列表中的结点 3 (序列化形式:[3,4,5])返回的结点值为 3 。 (测评系统对该结点序列化表述是 [3,4,5])。注意,我们返回 阅读全文
posted @ 2019-09-09 12:10 高颖1995 阅读(223) 评论(0) 推荐(0)
摘要:#include #include using namespace std; int find(int index, int k) { int cur_res = 0; while ((k+1)*cur_res > T; for (int i = 0; i > k >> m; vector num(30, -1); for (int j = ... 阅读全文
posted @ 2019-09-08 20:31 高颖1995 阅读(146) 评论(0) 推荐(0)
摘要:看,这样效果是一样的,只不过分层打印了 阅读全文
posted @ 2019-09-08 20:13 高颖1995 阅读(166) 评论(0) 推荐(0)
摘要:剑指的思路: B[i]的值可以看作下图的矩阵中每行的乘积。 下三角用连乘可以很容求得,上三角,从下向上也是连乘。 因此我们的思路就很清晰了,先算下三角中的连乘,即我们先算出B[i]中的一部分,然后倒过来按上三角中的分布规律,把另一部分也乘进去。 先乘以前面再乘以后面 class Solution { 阅读全文
posted @ 2019-09-01 17:02 高颖1995 阅读(123) 评论(0) 推荐(0)
摘要:我: 阅读全文
posted @ 2019-08-31 23:39 高颖1995 阅读(294) 评论(0) 推荐(0)
摘要:想想反转字符串哦 自己画个图 很简单 阅读全文
posted @ 2019-08-31 11:42 高颖1995 阅读(327) 评论(0) 推荐(0)
摘要:思路 :先把整个句子翻转,然后再翻转每一个单词 又把string里stl用法重新复习了一遍,里面有些内容比如 reverse sort 会了是真方便 阅读全文
posted @ 2019-08-31 11:23 高颖1995 阅读(235) 评论(0) 推荐(0)
摘要:class Solution { public: vector<vector<int> > FindContinuousSequence(int sum) { vector<vector<int> > result; int small=1; int big=2; int smallMax=(sum+1)/2; //最多两数相加 所以 small只能到 (sum+1)/2 while(small< 阅读全文
posted @ 2019-08-31 09:16 高颖1995 阅读(107) 评论(0) 推荐(0)
摘要:输入一个递增排序的数组和一个数字S,在数组中查找两个数, 使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。 1.自己用迭代器两个指针做的 1.left开头,right指向结尾 2.如果和小于sum,说明太小了,left右移寻找更大的数 3.如果和大于sum,说明太大了,rig 阅读全文
posted @ 2019-08-29 09:57 高颖1995 阅读(226) 评论(0) 推荐(0)
摘要:因为两个链表长度不一致 又长又短 而后面部分是公共的,所以求出长链表长度和短链表长度 让长链表把他俩之间的差距先走完,然后两个链表并行的走,直到碰到第一个相同的节点 阅读全文
posted @ 2019-08-28 22:29 高颖1995 阅读(122) 评论(0) 推荐(0)
摘要:反正不想用递归 但是一说是排序的 最好又用二分查找,这样比较快; 方法一 :找出重复数字出现第一次的坐标。以及出现最后一次的坐标; 方法二: 利用一点小技巧 阅读全文
posted @ 2019-08-28 21:25 高颖1995 阅读(155) 评论(0) 推荐(0)
摘要:复制代码 // 面试题54:二叉搜索树的第k个结点 // 题目:给定一棵二叉搜索树,请找出其中的第k大的结点。 #include <iostream> #include "BinaryTree.h" const BinaryTreeNode* KthNodeCore(const BinaryTreeNode* pRoot, unsigned int& k); const BinaryTreeNod 阅读全文
posted @ 2019-08-28 17:01 高颖1995 阅读(212) 评论(0) 推荐(0)
摘要:1 我想的是用map key放值,value放次数。 但是好像不太好 2 set 也可以 遍历输入的vector,当前数字不在set中则插入,否则从set删除(出现两次的数字) 这样结束遍历后set中剩余的就是要找的那两个只出现了一次的数字 3 异或 位运算 本题考查点 阅读全文
posted @ 2019-08-28 10:33 高颖1995 阅读(158) 评论(0) 推荐(0)
摘要:1. 其实就是map (key,value) 阅读全文
posted @ 2019-08-23 23:16 高颖1995 阅读(114) 评论(0) 推荐(0)
摘要:1.正常就是数一个个遍历 然后看哪个是丑数? 2.牛客网好厉害 阅读全文
posted @ 2019-08-23 22:03 高颖1995 阅读(109) 评论(0) 推荐(0)
摘要:1 将一个字符串转换成一个整数(实现Integer.valueOf(string)的功能,但是string不符合数字要求时返回0), 要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0。 输入 +2147483647 1a33 输出 2147483647 0 阅读全文
posted @ 2019-08-23 18:28 高颖1995 阅读(353) 评论(0) 推荐(0)
摘要:1 0-25 a-z 阅读全文
posted @ 2019-08-23 18:21 高颖1995 阅读(208) 评论(0) 推荐(0)
摘要:1用全排列 再遍历去比较哪个小这个方法实在是效率太低!!! 2 用sort和字符串结合 sort中的比较函数compare要声明为静态成员函数或全局函数,不能作为普通成员函数,否则会报错。 因为:非静态成员函数是依赖于具体对象的,而std::sort这类函数是全局的,因此无法再sort中调用非静态成 阅读全文
posted @ 2019-08-23 17:43 高颖1995 阅读(183) 评论(0) 推荐(0)