- 博客(14)
- 收藏
- 关注
原创 算法题:1047. 删除字符串中的所有相邻重复项
删除字符串中的所有相邻重复项题干核心思想示例代码题干给出由小写字母组成的字符串 S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。在 S 上反复执行重复项删除操作,直到无法继续删除。在完成所有重复项删除操作后返回最终的字符串。答案保证唯一。示例:输入:“abbaca”输出:“ca”解释:例如,在 “abbaca” 中,我们可以删除 “bb” 由于两字母相邻且相同,这是此时唯一可以执行删除操作的重复项。之后我们得到字符串 “aaca”,其中又只有 “aa” 可以执行重复项删除操作,所
2021-03-09 17:59:14
174
原创 算法题:338. 比特位计数
比特位计数题干核心思想示例代码题干给定一个非负整数 num。对于 0 ≤ i ≤ num 范围中的每个数字 i ,计算其二进制数中的 1 的数目并将它们作为数组返回。示例 1:输入: 2输出: [0,1,1]示例 2:输入: 5输出: [0,1,1,2,1,2]进阶:给出时间复杂度为O(n*sizeof(integer))的解答非常容易。但你可以在线性时间O(n)内用一趟扫描做到吗?要求算法的空间复杂度为O(n)。你能进一步完善解法吗?要求在C++或任何其他语言中不使用任何内置函数(
2021-03-03 15:00:46
175
1
原创 算法题:304. 二维区域和检索 - 矩阵不可变
二维区域和检索 - 矩阵不可变题干核心思想示例代码题干给定一个二维矩阵,计算其子矩形范围内元素的总和,该子矩阵的左上角为 (row1, col1) ,右下角为 (row2, col2) 。上图子矩阵左上角 (row1, col1) = (2, 1) ,右下角(row2, col2) = (4, 3),该子矩形内元素的总和为 8。示例:给定 matrix = [[3, 0, 1, 4, 2],[5, 6, 3, 2, 1],[1, 2, 0, 1, 5],[4, 1, 0, 1, 7],[
2021-03-02 15:37:46
147
原创 算法题:买卖股票的最佳时机
题干:给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票示例:示例1:输入:[7,1,5,3,6,4]输出:5示例2输入:[7,6,4,3,1]输出:0核心思想:记录已经遍历过的最小值,遍历下一个元素时,先判断他是不是比原最小值小,如果是,则更新最小值,然后在判断当前值与原先最小值的差是否超过原最高利润,如果超过就更新最大利润。示例代码:cla
2021-03-01 16:26:18
205
原创 算法题:303. 区域和检索 - 数组不可变
题干:给定一个整数数组 nums,求出数组从索引 i 到 j(i ≤ j)范围内元素的总和,包含 i、j 两点。实现 NumArray 类:NumArray(int[] nums) 使用数组 nums 初始化对象int sumRange(int i, int j) 返回数组 nums 从索引 i 到 j(i ≤ j)范围内元素的总和,包含 i、j 两点(也就是 sum(nums[i], nums[i + 1], … , nums[j]))示例:输入:[“NumArray”, “sumRang
2021-03-01 11:30:59
97
原创 算法题:867. 转置矩阵
题干:给你一个二维整数数组 matrix, 返回 matrix 的 转置矩阵 。矩阵的 转置 是指将矩阵的主对角线翻转,交换矩阵的行索引与列索引。示例 1:输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[[1,4,7],[2,5,8],[3,6,9]]示例 2:输入:matrix = [[1,2,3],[4,5,6]]输出:[[1,4],[2,5],[3,6]]提示:m == matrix.lengthn == matrix[i].length1
2021-02-25 11:14:45
560
原创 算法题:832. 翻转图像
题干:给定一个二进制矩阵 A,我们想先水平翻转图像,然后反转图像并返回结果。水平翻转图片就是将图片的每一行都进行翻转,即逆序。例如,水平翻转 [1, 1, 0] 的结果是 [0, 1, 1]。反转图片的意思是图片中的 0 全部被 1 替换, 1 全部被 0 替换。例如,反转 [0, 1, 1] 的结果是 [1, 0, 0]。示例 1:输入:[[1,1,0],[1,0,1],[0,0,0]]输出:[[1,0,0],[0,1,0],[1,1,1]]解释:首先翻转每一行: [[0,1,1],[1,0
2021-02-24 16:19:48
286
原创 算法题:爬楼梯
题干:假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例:核心思想:这题明显是一道递归题,通用公式是climbStairs(n) = climbStairs(n-1)+climbStairs(n-2),但是直接使用递归计算会超时间,总结原因后发现是做了过多的重复计算,比如n=5时,climbStairs(3)就被计算了两次,为了节省计算时间,就需要把已经计算出来的结果储存进去,因为不知道极限值为
2021-02-23 16:45:32
252
原创 算法题:爱生气的书店老板
题干:今天,书店老板有一家店打算试营业 customers.length 分钟。每分钟都有一些顾客(customers[i])会进入书店,所有这些顾客都会在那一分钟结束后离开。在某些时候,书店老板会生气。 如果书店老板在第 i 分钟生气,那么 grumpy[i] = 1,否则 grumpy[i] = 0。 当书店老板生气时,那一分钟的顾客就会不满意,不生气则他们是满意的。书店老板知道一个秘密技巧,能抑制自己的情绪,可以让自己连续 X 分钟不生气,但却只能使用一次。请你返回这一天营业下来,最多有多少客
2021-02-23 12:03:22
234
原创 算法题:将有序数组转换为二叉搜索
题干:将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。示例:核心思想:因为是平衡二叉搜索树,所以每个根节点需要尽量保证左右子树节点个数相近,所以每次都会截取中点作为树的根节点,其左侧的数组用来构成左子树,右侧的数组用来构成右子树,这样划分数组也能满足二叉搜索树的定义,通过递归的形式也能够保证每个字数都是二叉平衡搜索树初步解法:/*** Definition for a binary tre
2021-02-22 17:51:14
84
原创 Spring Boot学习笔记(四)——Thymeleaf
1.概述 在上篇笔记中我们学习了如何通过JPA对数据库进行操作,那接下来就是如何将数据显示到前台了,Spring Boot框架默认不支持JSP,这使得我们要使用HTML页面,为了完成页面动态化,Spring Boot很好的支持了模板引擎Thymeleaf。 2.目标 通过本次学习,能够完成在Spring Boot框架下Thymeleaf的配置与使用。 3.详细步骤(1)配置 在pom...
2018-08-02 17:53:27
316
原创 Spring Boot学习笔记(三)——使用JPA查询数据库返回需要的数据
1.概述 在上一篇中,我们已经学会了如何创建运行一个Spring Boot程序,但是他还远远满足不了一个网站的基本需求,完成这篇的学习后我们就能实现一个简单的雏形。 2.目标 在本篇中,实现的简单的数据库访问,读取数据的功能。 3.详细步骤...
2018-07-10 09:57:43
9648
原创 Spring Boot学习笔记(二)——编写第一个可运行的项目
1.概述 在上一篇中,主要阐述了如何创建一个项目,但是那个项目还无法运行,不具有实际运行的意义。在这一篇中将会编写一个最简单的可运行实例。 2.详细步骤 1.首先创建一个Spring Boot项目,这次在选择依赖时,我们选择web依赖和thymeleaf依赖。thymeleaf是一种网页模板引擎,能够实现html页面的动态化。 2.编写要访问的页面,放入到templates文件夹之下。示例...
2018-07-10 09:54:06
255
原创 Spring Boot学习笔记(一)——创建第一个Spring Boot项目
1.概述: 这是本人第一次写博客,写的不好请见谅。 本次学习Spring Boot是基于IDEA进行的,没有的同学请自行安装。2.详细步骤 这里才用两种方法新建我们的Spring Boot项目: (1)通过IDEA内的Spring Initializr新建Spring Boot项目 启动IDEA,新建项目,点开Spring Initializr页签点击下一步。这里...
2018-07-10 09:50:43
336
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人