leetcode
千树、
如此的简单的梦,有没有实现
展开
-
1648.销售价值减少的颜色球
感想 这题真是绝了,A了好久都A不出来.一直在纠结数值溢出的问题,最后索性全用long long了,我就不信还能溢出了. 既然写了这么久,还是写个博客纪念一下吧. 整体思路就是排序加二分搜索.排序很简单,略过不表.二分搜索是为了找到一个边界值,它将数组一分为二,大于此值的数值是都要取的;等于此值的数值选择性选取,能凑够需要的球数即可.这样就得到了最大值. 代码 class Solution { private: int constant = 1000000000+7; public: lon原创 2021-04-11 16:26:24 · 147 阅读 · 0 评论 -
位运算
常用位运算操作 判断奇偶 x & 1 == 1 equals to x % 2 == 1 x & 1 == 0 equals to x % 2 == 0 右移 & 左移位 x >> 1 x << 1 去掉最低位的二进制一 x &= x-1 得到最低位的一 x & -x 指定位置的位运算 将x最右边的n位清零 x & (~0 << n) 获取x的第n位的值 (x >> n) & 1 ...原创 2021-03-27 13:23:30 · 104 阅读 · 0 评论 -
61.旋转链表
题目描述 Given the head of a linked list, rotate the list to the right by k places. 解答 /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : v原创 2021-03-27 10:44:35 · 64 阅读 · 0 评论 -
73. 矩阵置零
题目描述 给定一个 m x n 的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都设为 0。请使用原地算法。 题解 class Solution { public: void setZeroes(vector<vector<int>>& matrix) { vector<vector<int> > path; for(int i = 0; i < matrix.siz原创 2021-03-21 09:05:22 · 55 阅读 · 0 评论 -
62&&63. 不同路径
62 题目描述 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。 问总共有多少条不同的路径? 解答 class Solution { public: int uniquePaths(int m, int n) { vector<vector<int>> group(m, vector<int>(原创 2021-03-20 22:19:51 · 44 阅读 · 0 评论 -
150.逆波兰表达式求值
题目描述 根据 逆波兰表示法,求表达式的值。 有效的算符包括 +、-、*、/ 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。 说明: 整数除法只保留整数部分。 给定逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。 解答 #include <stack> #include <vector> #include <iostream> using namespace std; class Solution { public:原创 2021-03-20 20:17:56 · 46 阅读 · 0 评论 -
53. 最大子序和
题目描述 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 解答 class solution { public: int maxsubarray(vector<int>& nums) { if(nums.size() == 1) return nums[0]; vector<int> result(nums.size()); resu原创 2021-03-20 13:21:21 · 41 阅读 · 0 评论 -
198&&213&&337. 打家劫舍系列
题目描述 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。 解答 class Solution { public: int rob(vector<int>& nums) { vector<int> res原创 2021-03-19 21:39:07 · 49 阅读 · 0 评论 -
121. 买卖股票的最佳时机
题目描述 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。 返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。 解答 class Solution { public: int climbStairs(int n) { int p = 0, q = 0, r = 1; f原创 2021-03-18 20:02:03 · 46 阅读 · 0 评论