代码编织梦想

【leetcode-爱代码爱编程

13.二维区域和检索-矩阵不可变 方法:一维前缀和 初始化时对矩阵的每一行计算前缀和,检索时对二维区域中的每一行计算子数组和,然后对每一行的子数组和计算总和。 具体实现方面,创建 m 行 n+1 列的二维数组 su

【剑指offer】数据结构——队列 栈 堆-爱代码爱编程

目录 数据结构——树【剑指offer】09.用两个栈实现队列【剑指offer】30. 包含min函数的栈【剑指offer】31. 栈的压入、弹出序列【剑指offer】41. 数据流中的中位数【剑指offer

【剑指offer】数据结构——数-爱代码爱编程

目录 数据结构——数直接解【剑指offer】43. 1~n 整数中 1 出现的次数【剑指offer】44. 数字序列中某一位的数字【剑指offer】49. 丑数【剑指offer】60. n个骰子的点数【剑指

剑指 offer 56 -爱代码爱编程

这道题有点想先排序,但是看到空间复杂度只有O(1),所以也不能使用哈希表。但是思路和之前那个找出所有数中唯一的数一样,全局异或开始! 找出两个数中不同位的数!然后以此作为区分!! 千万要记住,&的优先级比==还要低,所以以后在写符号运算类的题目时记得要打上括号或者和等号分开,一旦看到这种错误立马想到优先级问题!  下面是具体的思路 /*

剑指 offer 20. 表示数值的字符串-爱代码爱编程

这道题乍一看可以用switch状态来得到。但其实发现并不适合,因为这里还有判断,所以还是得回归到if--else的判断和选择环节 class Solution {     public boolean isNumber(String s) {         boolean ifHaveNumber = false;         boolean

剑指 offer 30. 包含min函数的栈-爱代码爱编程

剑指 Offer 30. 包含min函数的栈 方法一 使用两个栈。 class MinStack { Deque<Integer> stack = new ArrayDeque<>()

【剑指offer】数据结构——树-爱代码爱编程

目录 数据结构——树直接解【剑指offer】07. 重建二叉树【剑指offer】08. 二叉树的下一个结点【剑指offer】26. 树的子结构【剑指offer】27. 二叉树的镜像【剑指offer】28.

【剑指offer】面试题25.合并两个有序的链表_剑指offer面试25-爱代码爱编程

面试题25.合并两个有序的链表 题目 输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。 思路 设置dummy为一个空结点,作为新的链表,所以最后返回的就是dummy.next,设置cur为当

剑指offer 乘积小于k的子数组-爱代码爱编程

首先的思路是使用滑动窗口解决,使用滑动窗口我们可以确定符合条件的子数组。 如果此题求找到符合条件的子数组最大长度/最小长度,下图可以直观的看出是max=3,min=1 class Solution { pu

【剑指offer】面试题24.反转链表-爱代码爱编程

面试题24.反转链表 题目 定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。 思路  定义三个指针,pre,cur,temp;当我需要调整节点cur的next指针时,除了需要知道节点i本身,还

剑指offer015 三数之和-爱代码爱编程

# 暴力循环法 class Solution { public List<List<Integer>> threeSum(int[] nums) { Set set = n

剑指offer 167. 两数之和 ii -爱代码爱编程

#二分查找 class Solution { public int[] twoSum(int[] nums , int Target) { int[] temp = new int[2];

剑指 offer ii 008. 和大于等于 target 的最短子数组-爱代码爱编程

目的: 1、遍历数组找到多对子数组 [ 2,3 ] [ 1,2 ] [ 3,4 ]-------->既要考虑升序 也要考虑降序 2、找到多对 (子数组的和 等于Target )的数组 实现:双指针/滑动

【剑指offer】面试题16-爱代码爱编程

面试题16-数值的整数次方 题目 实现 pow(x, n) ,即计算 x 的 n 次幂函数(即,xn)。不得使用库函数,同时不需要考虑大数问题。 思路  首先考虑递归地出口,当n为0是,结果为1,当N为1时,返回x,

【剑指 offe】11. 旋转数组的最小数字-爱代码爱编程

题目:剑指 Offer 11. 旋转数组的最小数字 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 给你一个可能存在 重复 元素值的数组 numbers ,它原来是一个升序排列的数组,并按上述情形进行

acwing 79. 滑动窗口的最大值(c++)-爱代码爱编程

题目链接:https://www.acwing.com/problem/content/description/75/ 题目如下: class Solution { public: vector<int&g

剑指offer 060 出现频率最高的k个数字-爱代码爱编程

暴力解决法: 例如:[6,6,8,8,8,9] 思路: 令数组的元素成为key,元素出现的次数成为value,存入map中 key value 6  2 8  3 9  1 发现map默认是对key降序打印的

【剑指 offer】63. 股票的最大利润_剑指offer63-爱代码爱编程

剑指 Offer 63. 股票的最大利润 题目 假设把某股票的价格按照时间先后顺序存储在数组中,请问买卖该股票一次可能获得的最大利润是多少? 思路 dp[i]代表以prices[i]为结尾的子数组最大利润状态转移方程

【剑指offer】17. 打印从1到最大的n位数-爱代码爱编程

题目-剑指 Offer 17. 打印从1到最大的n位数 输入数字 n,按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大的 3 位数 999。 题解  使用字符串表示数字的时候

【剑指 offer】62. 圆圈中最后剩下的数字-爱代码爱编程

剑指 Offer 62. 圆圈中最后剩下的数字 题目 0,1,···,n-1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字(删除后从下一个数字开始计数)。求出这个圆圈里剩下的最后一个数字。 例如,