摘要:        
解析 最简单的方法是将矩阵先转置,然后翻转每一行元素,就得到旋转90°的矩阵了 我用的另一种思路,就是真的旋转 例如如下矩阵 然后先旋转最外层: 然后再旋转内层 也就是每个元素挪动到它最终的位置上,并用临时变量存储被占用位置的元素,每一次需要挪动元素个数4个 最外层的循环是从1 2 3这三个元素开始    阅读全文
        
            posted @ 2020-09-14 17:46
胖胖咩
阅读(342)
评论(0)
推荐(0)
        
        
            
        
        
摘要:        
解析 对于9*9的数独,我们按照行9个,列9个和3*3的子数独9个,因此一共有27个子数独,我们只需要判断这27个子数独中是否存在重复元素就解决了这一道题 行号0-8,列号0-8,我们按照从左到右从上到下,将3*3的子数独编号 012 3 4 5 6 7 8 那么我们按照行号和列号获取子数独编号的公    阅读全文
        
            posted @ 2020-09-14 16:30
胖胖咩
阅读(298)
评论(0)
推荐(0)
        
        
            
        
        
摘要:        
解析 我觉得我们需要考虑两种情况: 数组中不存在重复元素 数组中存在重复元素 当数组中存在重复元素,并且target刚好是这两个元素的和,那么我们的返回结果应该是两个相同元素的下标,甚至如果这样相同的元素有很多个,那么我只需要返回前两个相同的元素就可以了。 本题使用哈希来实现,定义哈希为map[in    阅读全文
        
            posted @ 2020-09-14 15:00
胖胖咩
阅读(147)
评论(0)
推荐(0)
        
        
            
        
        
摘要:        
解析 将数组中的0元素移动到最后,而其他元素的顺序保持不变,所以我们考虑双指针的做法 第一个指针用于遍历整个数组,如果这个指针遍历到的数组元素不等于0,那么就将这个值存到第二个指针指向的位置,然后将第二个指针向后移动一个位置 最后将第二个指针后面的数组位置全部补上0就可以了 算法 定义指针index    阅读全文
        
            posted @ 2020-09-14 14:05
胖胖咩
阅读(137)
评论(0)
推荐(0)
        
        
            
        
        
摘要:        
算法 设置一个进位值carry,初始carry的值为1,从数组的最后开始向前遍历遍历 数组当前遍历到的元素加carry,新的carry是这个和除以10,数组当前位置新的值是这个和对10求余 遍历完整个数组以后: 如果carry等于1,那么就在数组的最前面加一个元素1 如果carry不等于1,那么就直    阅读全文
        
            posted @ 2020-09-14 13:48
胖胖咩
阅读(143)
评论(0)
推荐(0)
        
        
            
        
        
摘要:        
解析 数组中元素是可以重复的 如果重复的元素是交集中的元素,那么在交集中要有这些元素 算法 创建一个map[int]int 遍历数组1中所有的元素,将他们存在上面的map中,map的键就是元素的值,map的值就是该元素出现的次数 遍历第二个数组的元素,如果该元素在map中的值大于1,就将这个元素存入    阅读全文
        
            posted @ 2020-09-14 13:26
胖胖咩
阅读(202)
评论(0)
推荐(0)
        
        
            
        
        
摘要:        
先决知识 异或操作符^ 关于异或运算: 我们需要知道的是任意两个相同的数进行异或运算结果为0 0与任意数字异或运算结果还是该数字本身 算法 将数组中所有元素进行异或运算,由于之前所有元素都成对出现,所以那些元素异或结果为0,这个0与那个单独的元素异或运算,结果就是只出现一次的那个元素 代码如下: f    阅读全文
        
            posted @ 2020-09-14 10:58
胖胖咩
阅读(138)
评论(0)
推荐(0)
        
        
            
        
        
摘要:        
本题的目的是判断数组中是否存在重复元素,那么直接使用map[int]bool就可以实现目的 代码如下: func containsDuplicate(nums []int) bool { elemMap := make(map[int]bool) for _, value := range nums    阅读全文
        
            posted @ 2020-09-14 10:30
胖胖咩
阅读(149)
评论(0)
推荐(0)
        
        
 
         浙公网安备 33010602011771号
浙公网安备 33010602011771号