LeetCode高频算法刷题记录3 |
您所在的位置:网站首页 › 高频交易算法模型 › LeetCode高频算法刷题记录3 |
文章目录
1. 搜索旋转排序数组【中等】1.1 题目描述1.2 解题思路1.3 代码实现
2. 有效的括号【简单】2.1 题目描述2.2 解题思路2.3 代码实现
3. 买卖股票的最佳时机【简单】3.1 题目描述3.2 解题思路3.3 代码实现
4. 环形链表【简单】4.1 题目描述4.2 解题思路4.3 代码实现
5. 岛屿数量【中等】5.1 题目描述5.2 解题思路5.3 代码实现
1. 搜索旋转排序数组【中等】
题目链接:https://leetcode.cn/problems/search-in-rotated-sorted-array/ 参考题解:https://leetcode.cn/problems/search-in-rotated-sorted-array/solution/sou-suo-xuan-zhuan-pai-xu-shu-zu-by-leetcode-solut/ 1.1 题目描述整数数组 nums 按升序排列,数组中的值 互不相同 。 在传递给函数之前,nums 在预先未知的某个下标 k(0 int len = nums.size(); if(len == 1) return nums[0] == target ? 0 : -1; int left = 0, right = len - 1; while(left if(nums[left] public: bool isValid(string s) { unordered_map pairs = { {')', '('}, {'}', '{'}, {']', '['} }; stack lefts; for(int i = 0; i if(lefts.empty() || pairs[s[i]] != lefts.top()) return false; lefts.pop(); } } if(lefts.empty()) return true; else return false; } }; 3. 买卖股票的最佳时机【简单】 题目链接:https://leetcode.cn/problems/best-time-to-buy-and-sell-stock/ 参考题解:https://leetcode.cn/problems/best-time-to-buy-and-sell-stock/solution/121-mai-mai-gu-piao-de-zui-jia-shi-ji-by-leetcode-/ 3.1 题目描述给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。 返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。 示例1: 输入:[7,1,5,3,6,4] 输出:5 解释:在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。 注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格;同时,你不能在买入前卖出股票。 示例2: 输入:prices = [7,6,4,3,1] 输出:0 解释:在这种情况下, 没有交易完成, 所以最大利润为 0。 提示: 1 int ans = 0; int min_price = prices[0]; for(int i = 0; i public: bool hasCycle(ListNode *head) { if(head == nullptr || head->next == nullptr) { return false; } ListNode *fast = head->next; ListNode *slow = head; while(fast->next != nullptr && fast->next->next != nullptr) { if(fast == slow) return true; fast = fast->next->next; slow = slow->next; } return false; } }; 5. 岛屿数量【中等】题目链接:https://leetcode.cn/problems/number-of-islands/ 参考题解:https://leetcode.cn/problems/number-of-islands/solution/dao-yu-shu-liang-by-leetcode/ 5.1 题目描述给你一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,请你计算网格中岛屿的数量。 岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。 此外,你可以假设该网格的四条边均被水包围。 示例1: 输入:grid = [ [“1”,“1”,“1”,“1”,“0”], [“1”,“1”,“0”,“1”,“0”], [“1”,“1”,“0”,“0”,“0”], [“0”,“0”,“0”,“0”,“0”] ] 输出:1 示例2: 输入:grid = [ [“1”,“1”,“0”,“0”,“0”], [“1”,“1”,“0”,“0”,“0”], [“0”,“0”,“1”,“0”,“0”], [“0”,“0”,“0”,“1”,“1”] ] 输出:3 提示: m == grid.lengthn == grid[i].length1 int num_rows = grid.size(); int num_cols = grid[0].size(); grid[row][col] = '0'; if(row - 1 >= 0 && grid[row - 1][col] == '1') dfs(grid, row - 1, col); if(row + 1 = 0 && grid[row][col - 1] == '1') dfs(grid, row, col - 1); if(col + 1 for(int col = 0; col ++ans; dfs(grid, row, col); } } } return ans; } }; |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |