异或
maihc1
这个作者很懒,什么都没留下…
展开
-
LeetCode每日一题-2021/05/19-找出第k大的异或坐标值
找出第k大的异或坐标值–java–动态规划 本题是一道考察***异或性质***以及***简单的动态规划思想***的题目 本题思路: 读题之后,相信很多同学都可以很容易的想到本题的状态转移方程:即dp[i][j] = dp[i - 1][j - 1] ^ dp[i][j - 1] ^ dp[i - 1][j] ^ matrix[i][j]; 根据状态转移方程可以很容易的求得二维dp数组。 由于题目是让求第K大的异或值,只需对所有的异或值进行排序,然后返回第K大的异或值即可。 代码实现: class Solut原创 2021-05-19 13:58:09 · 68 阅读 · 0 评论 -
leetCode每日一题-2021/05/18-形成两个异或相等数组的三元组数目
形成两个异或相等数组的三元组数目 我是垃圾,第一时间连前缀和都没想到~~~。 说说这道题吧,首先想到的思路是三次循环,然后在第三重循环中再套一重循环求a和b的值,判断是ab否相等。 时间复杂度为n^4,结果没有任何悬念的超时了。 附上代码: class Solution { // 暴力解法 public int countTriplets(int[] arr) { int cnt = 0; for( int i = 0; i < arr.length; ++i ){ for( int j = i +原创 2021-05-18 17:30:00 · 61 阅读 · 0 评论 -
leetcode之奇妙的异或运算
leetcode之奇妙的异或运算 开始之前,我们先了解一下异或的概念: 这是百度百科上异或的解释,这里精简一下: 两数异或,相同为0,不同为1. 另外,异或有两个重要的性质: 满足交换律 一个数异或0还是它本身(在后面会用到这两个性质) leetcode 136 这个题较简单,但如果用异或操作,可以不使用额外空间来实现。 原理就是: 先对数组中所有元素进行异或运算。 nums[0] ^ nums[1] ^ … ^ nums[nums.length() - 1] 利用上面提到的两个性质: 利用交换律原创 2020-12-18 20:19:28 · 433 阅读 · 0 评论