绝望小队
文章平均质量分 86
不动心、
这个作者很懒,什么都没留下…
展开
-
1203. 项目管理
问题描述公司共有 n 个项目和 m 个小组,每个项目要不无人接手,要不就由 m 个小组之一负责。group[i] 表示第 i 个项目所属的小组,如果这个项目目前无人接手,那么 group[i] 就等于 -1。(项目和小组都是从零开始编号的)小组可能存在没有接手任何项目的情况。请你帮忙按要求安排这些项目的进度,并返回排序后的项目列表:同一小组的项目,排序后在列表中彼此相邻。项目之间存在一定的依赖关系,我们用一个列表 beforeItems 来表示,其中 beforeItems[i] 表示在进行第原创 2021-01-13 16:24:47 · 88 阅读 · 0 评论 -
剑指 Offer 58 - II. 左旋转字符串
题目描述字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。原地算法用两次substr函数把原来的字符串切成两段再接起来,时间复杂度是O(N)O(N)O(N),但是空间复杂度是O(N)O(N)O(N),不是原地算法。可以将空间复杂度降为O(0)O(0)O(0)。方法是使用reverse函数,分别将两段子序列反转,然后整体反转,就能达到目的。clas原创 2020-10-01 22:19:09 · 55 阅读 · 0 评论 -
剑指 Offer 58 - I. 翻转单词顺序
题目描述输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串"I am a student. “,则输出"student. a am I”。示例 1:输入: "the sky is blue"输出: "blue is sky the"示例 2:输入: " hello world! "输出: "world! hello"解释: 输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。示例 3:输入: "原创 2020-10-01 22:04:38 · 44 阅读 · 0 评论 -
剑指 Offer 15. 二进制中1的个数
题目描述请实现一个函数,输入一个整数,输出该数二进制表示中 1 的个数。例如,把 9 表示成二进制是 1001,有 2 位是 1。因此,如果输入 9,则该函数输出 2。解题思路解法1因为除法的效率比移位运算要低得多,在实际编程中应尽可能地用移位运算符代替乘除法。第一种解题思路就是利用移位运算符。借助与运算符 & 和移位运算符 << 。先用1和整数n做& 运算,如果n的二进制表示末位是1,那么结果是1,否则就是0。然后对1使用左移位,1就到了倒数第二位,再做&运原创 2020-09-10 10:16:49 · 59 阅读 · 0 评论 -
剑指 Offer 11. 旋转数组的最小数字(这方法太麻烦了,直接看leetcode的官方题解吧)
题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一个旋转,该数组的最小值为1。解题思路直接从头到位扫描最小值,时间复杂度为O(n)O(n)O(n)。但是这种方法没有利用条件中原数组是递增排序这个条件。注意到旋转后的数组实际上是两个有序的子数组,而且前面子数组的元素都大于等于后面子数组的元素。而且最小元素恰好是两个子数组的分界线。在排序的数组中我们可以原创 2020-09-06 17:05:30 · 65 阅读 · 0 评论 -
剑指 Offer 09. 用两个栈实现队列
题目描述用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )解题思路自己想的是栈1用来存储元素,栈2用来改变存储顺序。每次要插入新的元素,先把栈1元素分别出栈,压进栈2,然后把新元素压进栈1,这样新元素就在栈1的最底。然后把栈2中所有元素再出栈,依次push进栈1。从队列中取元素时,就直接返回栈1顶部的元素。但是这样在栈1和栈2之间原创 2020-09-06 10:53:23 · 76 阅读 · 0 评论 -
剑指 Offer 07. 重建二叉树
题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。解题思路/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }原创 2020-09-05 17:08:16 · 60 阅读 · 0 评论 -
剑指 Offer 06. 从尾到头打印链表
题目描述输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。解题思路/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: vector<int> rever原创 2020-09-05 11:22:12 · 61 阅读 · 0 评论 -
剑指 Offer 05. 替换空格
题目描述请实现一个函数,把字符串 s 中的每个空格替换成"%20"。解题思路class Solution {public: string replaceSpace(string s) { int length = s.size(); int space_n = 0; for(int i=0; i<length; ++i){ if(s[i]==' ') ++space_n;原创 2020-09-04 16:37:07 · 45 阅读 · 0 评论 -
剑指 Offer 04. 二维数组中的查找
题目描述在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。题解从右上角或者左下角看,相当于看一个二叉搜索树。class Solution {public: bool findNumberIn2DArray(vector<vector<int>>& matrix, int target) { int column原创 2020-09-04 11:40:22 · 58 阅读 · 0 评论 -
剑指offer.03. 数组中重复的数字
题目描述找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。利用哈希表class Solution {public: int findRepeatNumber(vector<int>& nums) { unordered_set<int> nSet; for(int i :原创 2020-09-04 10:19:57 · 55 阅读 · 0 评论 -
11.乘最多水的容器
题目描述给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且 n 的值至少为 2。图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。示例:输入:[1,8,6,2,5,4,8,3,7]输出:49双指针法原创 2020-08-03 22:52:02 · 382 阅读 · 0 评论 -
15.三数之和
题目描述给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有满足条件且不重复的三元组。**注意:**答案中不可以包含重复的三元组。示例:给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[ [-1, 0, 1], [-1, -1, 2]]双指针法class Solution {public: vector<vector<int&g原创 2020-08-02 22:13:49 · 49 阅读 · 0 评论 -
1.两数之和
题目描述给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]哈希法最简单的方法就是暴力破解,时间复杂度为O(n2).class Solution {public: vect原创 2020-07-26 10:41:31 · 121 阅读 · 0 评论