1th 两数之和 暴力枚举法 直接两重循环暴力枚举,很慢。 class Solution { public int[] twoSum(int[] nums, int target) { int[] ans = new int[2]; for(int i = 0; i < nums.length; i ...
分类:
其他好文 时间:
2020-07-04 14:59:09
阅读次数:
48
1.数据结构与算法初探 (1)什么是数据结构 a.“摆放图书”例子 b.逻辑结构与存储结构 c.抽象数据类型 (2)什么是算法 算法的定义 算法的特性和设计要求 算法的度量方法(时间复杂度 & 空间复杂度) (3)算法优化——最大子列和 算法1:三重循环 算法2:两重循环 算法3:分治 算法4:在线 ...
分类:
编程语言 时间:
2020-07-04 01:14:59
阅读次数:
83
双指针算法 模板 for (int i=0;i<n;i++) { while(j<i && check(i,j)) j++; /* 这里面 的 j 相比于两重循环,不用 回调 所以时间复杂度低 */ //具体问题的逻辑 } /* 常见问题分类: (1) 对于一个序列,用两个指针维护一段区间 (2) ...
分类:
其他好文 时间:
2020-07-03 19:09:58
阅读次数:
50
最先想到的两重for循环,超时,输入的数组很大,一整个页面的数,人直接傻了 接下来运用余数的思想。一个数除以60的余数为0~59,建立一个数组remainder保存余数出现的次数。 先不考虑余数为0和30的情况。 剩下的余数相加为60则说明可以整除。建立头尾两个指针,1与59,2与58...,如果1 ...
分类:
编程语言 时间:
2020-05-25 12:13:08
阅读次数:
66
考虑暴力。 我们做两重循环,枚举乘数和被乘数,判断回文取 $\max$ 即可。 时间复杂度 $O(900^2)=O(810000)$。 ...
分类:
其他好文 时间:
2020-05-22 21:20:24
阅读次数:
53
1.两数之和 思路: 都会想到的肯定是两重循环,但这会导致一个n平方的时间复杂度。有一个问题是,我在看浙大数据结构课中,其中提到如果见到n平方,要想办法做成nlogn,所以思路往那边想去了。所以,什么情况下能尝试吧n平方优化成nlogn呢? 没想到的是,LeetCode给的官方解法是hashmap的 ...
分类:
编程语言 时间:
2020-05-02 11:58:31
阅读次数:
60
输入n ( n<= 100,000)个整数,找出其中的两个数,它们之和等于整数m(假定肯定有解)。题中所有整数都能用 int 表示解法1:用两重循环,枚举所有的取数方法,复杂度是O(n 2 )的。for(int i = 0;i < n-1; ++i) for(int j = i + 1; j < n ...
分类:
其他好文 时间:
2020-04-20 10:29:10
阅读次数:
78
非线性时间比较类 1. 交换排序 1.冒泡排序 思想:从前往后扫描,如果相邻两个元素的大小不满足要求,则进行交换。因此,每一轮可以将最大的元素放到最后一位,下一轮扫描时,就无需进行到最后一位了。 时间复杂度:进行两重循环,因此是O(n^2) 空间复杂度:原地排序,无需其他额外的空间,因此是O(1) ...
分类:
编程语言 时间:
2020-03-11 15:46:02
阅读次数:
75
对于两重for循环 include include include using namespace std; / 把一个字符串中的所有单词找到,并按行输出 / int main() { char str[100]; gets(str); int n = strlen(str); for(int i ...
分类:
编程语言 时间:
2020-02-03 09:41:08
阅读次数:
89
题解:两重循环,内层循环求阶乘的值,外层求和。 时间复杂度 O(n^2) 空间复杂度 O(n) #include <bits/stdc++.h> using namespace std; typedef long long ll; ll ans,n; int main() { std::ios::s ...
分类:
其他好文 时间:
2020-02-03 09:36:16
阅读次数:
154