笔试强训
文章平均质量分 71
笔试强训刷题本
今天也要new对象呢
感谢大家的喜欢与支持,博主是在读大二学生,写写笔记记录一下自己的学习。
展开
-
[笔试强训]day3
思路:可以先用暴力的思想,固定左端点和右端点,发现时间复杂度是O(N^2),但这道题的数据量是10^7,所以要优化成O(N),接着看题目给出的要求,a[i]是大于0的,所以用滑动窗口来优化暴力解法。经典的滑动窗口问题的一般解法:1.进窗口,2.判断,3./4.出窗口,4./3.更新结果。思路:利用scanf读取特性,因为scanf是以空格,换行或者文件末尾为结束标志。思路:那必然是操作最大的偶数/2,所以我们要用到堆。原创 2024-04-27 14:48:23 · 345 阅读 · 2 评论 -
[笔试强训]day2
思路:简单dp问题,定义好状态表示:dp[i]->到达i位置所需的最小花费,到达i位置,可由i - 1位置或者i - 2位置过来,=》状态转移方程:dp[i] = min(dp[i - 1] + cost[i - 1], dp[i - 2] + cost[i - 2]);注意一个点:第二个输入的参数是字符,要使用scanf读取的话,容易把空格读进去,eg:1.0 y,中间是有空格的,所以我们的scanf("%f%c...)是错误的,会将空格读到第二个参数里,所以在格式化输入那里加空格,或者使用cin读取。原创 2024-04-26 20:06:13 · 273 阅读 · 3 评论 -
[笔试强训]day1
思路:用hash表来标记数组1出现过的元素,若出现过则标记为1,然后数组2中的元素如果在hash表中已经标记过了,则加入到ret中,并且在hash表中标记为2,表示这个元素已经是公共元素了。因为要考虑:{1,2,3,3},{1,2,3};{1,2,3},{1,2,3,3}这些情况。数据范围:length 1~1000,val 1~1000,所以hash表只需开1001个空间即可。时间复杂度:O(N) 空间复杂度:O(1)时间复杂度:O(N) 空间复杂度:O(1)原创 2024-04-25 14:07:03 · 374 阅读 · 1 评论