算法
-Yii
这个作者很懒,什么都没留下…
展开
-
剑指 Offer II 001. 整数除法
题目描述:给定两个整数 a 和 b ,求它们的除法的商 a/b ,要求不得使用乘号 ‘*’、除号 ‘/’ 以及求余符号 ‘%’ 。注意:整数除法的结果应当截去(truncate)其小数部分,例如:truncate(8.345) = 8 以及 truncate(-2.7335) = -2假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−231, 231−1]。本题中,如果除法结果溢出,则返回 231 − 1var divide = function(a, b) { const max_原创 2022-02-21 00:21:02 · 206 阅读 · 0 评论 -
58.最后一个单词的长度④
题目这道题的思路简单,只需要从后往前找到第一个非空的下标,然后从此下标往前搜,长度不断++,直到遇到空格,停止计数。tips:一开始一直报错,查了一下,是数组越界。后面修改了,如下列代码注释所解。代码class Solution {public: int lengthOfLastWord(string s) { int result = 0; int i,j; for(i=s.length()-1; i>=0 &&原创 2021-11-16 20:50:07 · 257 阅读 · 0 评论 -
20.有效的括号
解题思路匹配问题,且匹配的元素分别在头尾①如果为偶数,说明肯定不匹配②采用栈的数据结构,后进先出③左括号入栈,遇到右括号跟栈顶的左括号进行匹配,合格则弹出,否则直接return false④整个字符串遍历完毕之后,判断栈是否为空,空则说明刚好匹配完,非空说明不符合要求tips:为了将右括号跟左括号匹配起来,方便比较,采用unordered_map(对顺序没有要求,查找速度相对快)代码 bool isValid(string s) { if (s.size % 2 !=0){ retur原创 2021-11-12 16:39:45 · 393 阅读 · 0 评论 -
1.两数之和 - 力扣
打卡第二天,从简单题做起。暴力求解,时间复杂度O(n²)int* twoSum(int* nums, int numsSize, int target, int* returnSize){ for (int i = 0; i < numsSize; ++i) { for (int j = i + 1; j < numsSize; ++j) { if (nums[i] + nums[j] == target) { ..原创 2021-06-02 16:12:41 · 80 阅读 · 0 评论