算法思路
蒋琳珂
这个作者很懒,什么都没留下…
展开
-
华为面试题:判断数组内是否存在任意数的和等于给定的K
题目:给定数组a1,a2…an,n<10000。判断是否其中几个数之和为k,每个下标的数字仅可用一次。,若存在,返回true,不存在返回false。#include <iostream>#include<algorithm>using namespace std;bool IsContainNumTotalK(int *nums,int size,int k){ if (0 == size) { return false;原创 2021-07-23 23:34:30 · 614 阅读 · 0 评论 -
LeeCode11
11.盛最多水的容器给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器。示例 1:输入:[1,8,6,2,5,4,8,3,7]输出:49解释:图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。示例 2:原创 2021-03-04 18:05:02 · 166 阅读 · 1 评论 -
LeeCode338
比特位计数给定一个非负整数 num。对于 0 ≤ i ≤ num 范围中的每个数字 i ,计算其二进制数中的 1 的数目并将它们作为数组返回。示例 1:输入: 2输出: [0,1,1]示例 2:输入: 5输出: [0,1,1,2,1,2]思路解析:1·简单的思路就是一个数一个数地算,就是逐位判断是否为1,之后累加。用移位也好用取余数也好,都是这么个思路。代码就不赘述了。复杂度O(n*sizeof(integer))2·用一种O(n)的方式,一边扫描。其实不难发现二进制数字的规律。0中.原创 2021-03-03 13:36:10 · 129 阅读 · 0 评论 -
链表原地反转
链表原地反转链表头节点有数据。否则反转后头结点有数据,而尾节点没有数据。思路很简单:假如原来的链表是:1->2->3->4->5->null第一个节点插入第二个节点之后:2->1->3->4->5->null再将2->1当做整体插入3之后:3->2->1->4->5->null...最后得到5->4->3->2->1->null返回结果的头结点指针复杂度是O(n原创 2021-01-28 15:38:41 · 345 阅读 · 1 评论