题目: 解答: 将A的从低位(尾部数字)与K相加,同时K每次都要丢弃个位数字,然后与A的下一个数字相加(此思路参考评论区大佬做的)。 1 class Solution { 2 public: 3 vector<int> addToArrayForm(vector<int>& A, int K) 4 ...
分类:
编程语言 时间:
2020-05-04 19:08:41
阅读次数:
46
题目: 解答: 我们从左到右扫描数组 flowerbed,如果数组中有一个 0,并且这个 0 的左右两侧都是 0,那么我们就可以在这个位置种花,即将这个位置的 0 修改成 1,并将计数器 count 增加 1。对于数组的第一个和最后一个位置,我们只需要考虑一侧是否为 0。 在扫描结束之后,我们将 c ...
分类:
编程语言 时间:
2020-05-04 19:03:09
阅读次数:
61
题目: 解答: 使用反转。 这个方法基于这个事实:当我们旋转数组 k 次, k\%nk%n 个尾部元素会被移动到头部,剩下的元素会被向后移动。 在这个方法中,我们首先将所有元素反转。然后反转前 k 个元素,再反转后面 n-kn?k 个元素,就能得到想要的结果。 假设 n=7且 k=3 。 原始数组 ...
分类:
编程语言 时间:
2020-05-04 17:45:20
阅读次数:
61
题目: 解答: 假设选择任意两个不相同的数做个消除操作,那么消除玩还剩下的数一定是答案。 (1)扫描一次数组,扫描的过程中记录 "当前数"curNum 和 "当前数的个数"count 。(2)如果遇到不相同的数,则count减1,count减到0时,curNum换成扫描到的新数。(3)扫描完一遍数组 ...
分类:
编程语言 时间:
2020-05-04 17:39:25
阅读次数:
75
题目: 解答: 总的来说就是利用杨辉三角形后一行与前一行的关系。更新过程为:从倒数第二个元素开始往前更新 它等于原来这个位置的数 + 前一个位置的数行[i] = 行[i] + 行[i-1] 1 class Solution { 2 public: 3 vector<int> getRow(int r ...
分类:
编程语言 时间:
2020-05-04 17:33:24
阅读次数:
77
题目: 解答: 1 class Solution { 2 public: 3 int maxProfit(vector<int>& prices) 4 { 5 int profit = 0; 6 for (int i = 1; i < prices.size(); i++) 7 { 8 int tm ...
分类:
编程语言 时间:
2020-05-04 17:32:01
阅读次数:
63
题目: 解答: 1 class Solution { 2 public: 3 vector<int> twoSum(vector<int>& numbers, int target) 4 { 5 int low = 0; 6 int high = numbers.size() - 1; 7 8 wh ...
分类:
编程语言 时间:
2020-05-04 17:27:43
阅读次数:
67
题目: 解答: 我们需要找出给定数组中两个数字之间的最大差值(即,最大利润)。此外,第二个数字(卖出价格)必须大于第一个数字(买入价格)。 形式上,对于每组 i和 j(其中 j >i),我们需要找出 max(prices[j] - prices[i])。 方法一:暴力法 1 class Soluti ...
分类:
编程语言 时间:
2020-05-04 17:18:39
阅读次数:
56
题目: 解答: 只有在我们知道序列仍然保持有效时才添加 ‘(‘ or ‘)’。我们可以通过跟踪到目前为止放置的左括号和右括号的数目来做到这一点。 如果我们还剩一个位置,我们可以开始放一个左括号。 如果它不超过左括号的数量,我们可以放一个右括号。 1 class Solution { 2 3 vect ...
分类:
其他好文 时间:
2020-05-04 15:50:14
阅读次数:
58
题目: 解答: 根据常规十进制小数转二进制小数的方法进行转化;十进制的小数转换为二进制,主要是小数部分乘以2,取整数部分依次从左往右放在小数点后,直至小数点后为0。 例如:十进制的0.125,要转换为二进制的小数。 (1)0.125 x 2 = 0.25 ==> 0 (2)0.25 x 2 = 0. ...
分类:
其他好文 时间:
2020-05-04 15:49:35
阅读次数:
70