![](https://img-blog.csdnimg.cn/d34a2501c21144c9b32f5410b9a1b09b.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
力扣
算法
zhixuChen200
打代码 打篮球
展开
-
剑指offer-013-二维子矩阵的和
目录标题题目思路代码题目给定一个二维矩阵 matrix,以下类型的多个请求:计算其子矩形范围内元素的总和,该子矩阵的左上角为 (row1, col1) ,右下角为 (row2, col2) 。实现 NumMatrix 类:NumMatrix(int[][] matrix) 给定整数矩阵 matrix 进行初始化int sumRegion(int row1, int col1, int row2, int col2) 返回左上角 (row1, col1) 、右下角 (row2, col2) 的子原创 2023-01-31 10:32:01 · 302 阅读 · 0 评论 -
剑指offer-010-和为k的子数组
目录标题题目思路代码题目给定一个整数数组和一个整数 k **,**请找到该数组中和为 k 的连续子数组的个数。示例 1:输入:nums = [1,1,1], k = 2输出: 2解释: 此题 [1,1] 与 [1,1] 为两种不同的情况示例 2:输入:nums = [1,2,3], k = 3输出: 2思路1.先求出从第一个整数,到数字最后一个数的子数组之和,记为数组z[ ],这样任意两个数的子数组之和即为z[i]-z[j]。2.通过遍历数组z[]就可以知道出现了和为k的子数组出原创 2023-01-17 10:49:34 · 66 阅读 · 0 评论 -
剑指offer-005-单词长度的最大乘积
目录标题题目思路代码题目给定一个字符串数组 words,请计算当两个字符串 words[i] 和 words[j] 不包含相同字符时,它们长度的乘积的最大值。假设字符串中只包含英语的小写字母。如果没有不包含相同字符的一对字符串,返回 0。输入: words = [“abcw”,“baz”,“foo”,“bar”,“fxyz”,“abcdef”]输出: 16解释: 这两个单词为 “abcw”, “fxyz”。它们不包含相同字符,且长度的乘积最大。思路1.解决这道题的关键在于如何判断两个字符串原创 2023-01-16 14:29:17 · 59 阅读 · 0 评论 -
剑指offer-004-只出现一次的数字
目录标题题目思路代码解法1,暴力解法2,运用位运算题目输入一个整数数组,数组中只有一个数字出现了一次,而其他数字都出现了3次。请找出那个只出现一次的数字。例如,如果输入的数组为[0,1,0,1,0,1,100],则只出现一次的数字是100。思路1.将数组转换成Map结构,数字作为key,出现的次数为value,遍历map集合,返回value=1的key,这种做法很简单,但是效率也比较低。2.一个整数是由32个0或1组成的。我们可以将数组中所有数字的同一位置的数位相加。如果将出现3次的数字单独拿原创 2023-01-12 16:04:32 · 56 阅读 · 0 评论 -
剑指offer-001-整数的除法
目录标题题目思路代码题目给定两个整数 a 和 b ,求它们的除法的商 a/b ,要求不得使用乘号 ‘*’、除号 ‘/’ 以及求余符号 ‘%’ 。思路1.int数值类型的范围为-231~231-1,若全转换成整数进行操作,-2^31这个数则会超出范围,因此全部转换成负数进行操作。2.暴力解法,可以用被除数一直减去除数,直到被除数小于除数,减去几个除数商就是几个,但是这样肯定会超时。3.将上诉算法进行优化,当被除数大于除数时,继续比较判断被除数是否大于除数的2倍,如果是,则继续判断被除数是否大于原创 2023-01-09 17:46:10 · 94 阅读 · 0 评论 -
1720. 解码异或后的数组
目录标题题目思路代码题目思路异或运算具有如下性质:1.异或运算满足交换律和结合律;2.任意整数和自身做异或运算的结果都等于 0,即 x⊕x=0;3.任意整数和 00 做异或运算的结果都等于其自身,即 x⊕0=0⊕x=x。encoded[i]=arr[i] xor arr[i+1]两边同时异或arr[i] ,即: encoded[i] xor arr[i]=arr[i] xor arr[i+1] xor arr[i]最后等于 arr[i+1]= encoded[i] xor arr原创 2021-05-06 10:05:15 · 101 阅读 · 0 评论 -
27. 移除元素
文章目录题目思路实现题目思路我才用类似于冒泡排序的思路,遍历数组找到值等于val的位置,从这里开始往下找到,不是val值的位置,两个数组位置的值进行,交换,到最后,所有val值的元素都会到数组的最后方实现class Solution { public int removeElement(int[] nums, int val) { int n=nums.length; for(int i=0;i<nums.length;i++){原创 2021-04-02 09:57:34 · 59 阅读 · 0 评论 -
1006. 笨阶乘
目录标题题目思路代码题目思路根据大一时候学数据结构的经验,一般表达式的计算可以使用栈来完成出现乘法、除法的时候可以把栈顶元素取出,与当前的 N 进行乘法运算、除法运算(除法运算需要注意先后顺序),并将运算结果重新压入栈中;出现加法、减法的时候,把减法视为加上一个数的相反数,然后压入栈,等待以后遇见「乘」「除」法的时候取出代码class Solution { public int clumsy(int N) { Deque<Integer> stack = new原创 2021-04-01 11:01:51 · 67 阅读 · 0 评论