优选算法专题
文章平均质量分 65
主要写算法的
邓富民
你要像欣赏花一样,欣赏你自己
展开
-
【算法——一维前缀和与二维前缀和】
那就可能会出现越界的情况,当i = 0时,就出现了dp[0] = dp[-1] + arr[0];所以dp数组一般都从1开始填充,dp[0] = 0,这样不会影响到后面的结果。所以总的时间复杂度为O(n*q),这种复杂度一定会超时。本道题就是要我们求指定的一段数组的所有元素的和。如果想要求出区间为[l,r]的和时,只需要。按照暴力解法,从5下标开始加到8即可。当我们想要求出区间[5,8]的和时,如果要求求出下标[5,8]的和时,创建一个辅助数组dp。原创 2024-10-08 09:20:02 · 201 阅读 · 0 评论 -
【算法思想——位运算】
这样遍历32位比特位之后,就将nums的所有数字都分给了a和b两部分异或,这样,由于两个数异或之后的结果是0,0异或任何数又是它本身,就能将a和b两个数分开了。对于a^b,其32个比特位上的任意一位,结果要么是0要么是1,根据异或规则,相同为0,无法区分a和b,相异为1,这样就能区分开了。将这两组数据全部加起来,结果就是nums中的每一个数字都出现了两次,只有a和b只出现了一次。然后将每一个比特位上的数%3之后,结果无论是1,还是0,这个位都属于只出现一次的数字a。将所有位都%3,此时结果就出来了。原创 2024-10-08 09:19:20 · 427 阅读 · 0 评论 -
【二分查找算法】
但是,在加法中,有可能left + right > INT_MAX,此时就溢出了。原创 2024-09-23 17:34:43 · 344 阅读 · 0 评论 -
【滑动窗口】算法总结
遇到那些可以转化成一个子数组的长度的问题时,往往需要用到双指针。在暴力求解的情况下,在遇到判断条件不成立时,往往需要从right回到left重新往后走。但是如果可以让right没有往回走的必要时,就产生了”同向双指针“,这时,就引入了滑动窗口的解决办法。原创 2024-09-21 15:06:51 · 497 阅读 · 0 评论 -
【优选算法精品】前缀和
这篇文章是关于前缀和的题目解题思路以及一些模板,还是那句话,不要背模板。原创 2023-10-27 16:11:53 · 272 阅读 · 1 评论