算法-数据结构
刷题总结
swainnnn
always like this~
展开
-
Leecode34.找出给定目标值在数组中的开始位置和结束位置
//给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。 //// 如果数组中不存在目标值 target,返回 [-1, -1]。 // 你可以设计并实现时间复杂度为 O(log n) 的算法解决此问题吗? // 示例 1: //输入:nums = [5,7,7,8,8,10], target = 8//输出:[3,4] //// 示例 2: //输入:nums = [5,7,7,8,8,10], target = 6//输.原创 2021-07-14 19:47:36 · 799 阅读 · 0 评论 -
Leecode213.打家劫舍
//你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金。这个地方所有的房屋都 围成一圈 ,这意味着第一个房屋和最后一个房屋是紧挨着的。同时,相邻的//房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警 。 //// 给定一个代表每个房屋存放金额的非负整数数组,计算你 在不触动警报装置的情况下 ,今晚能够偷窃到的最高金额。//// 示例 1:// //输入:nums = [2,3,2]//输出:3//解释:你不能先偷窃 1 号房屋(金额 = 2.原创 2021-07-14 19:43:29 · 110 阅读 · 0 评论 -
Leecode. 恢复二叉搜索树
//给你二叉搜索树的根节点 root ,该树中的两个节点被错误地交换。请在不改变其结构的情况下,恢复这棵树。思路:二叉搜索树特点:左子节点<根节点<右子节点;中序遍历二叉搜索树递增排列。中序遍历二叉树,在遍历过程中记录前一次遍历的节点pre,若pre.val大于当前遍历节点值,则pre为第一个出错的节点;继续遍历当pre又一次大于当前节点值,则当前节点为第二个出错的节点。class TreeNode { int val; TreeNode left; Tr.原创 2021-07-07 20:18:18 · 97 阅读 · 0 评论 -
Leetcode146. LRU缓存机制
//运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制 。 // 示例: ////输入//["LRUCache", "put", "put", "get", "put", "get", "put", "get", "get", "get"]//[[2], [1, 1], [2, 2], [1], [3, 3], [2], [4, 4], [1], [3], [4]]//输出//[null, null, null, 1, null, -1, null, -1, 3, 4.原创 2021-07-03 10:35:05 · 72 阅读 · 0 评论 -
给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)
// 示例 1://输入:nums = [1,2,3]//输出:[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]// //// 示例 2: //输入:nums = [0]//输出:[[],[0]]思路:* 每个数有两种情况,取或者不取。所以一共有2的n次方种解法。 * 可以联想到二进制来表示,所以遍历0到2^n-1,然后将其转为二进制字符串。 * 二进制字符串上每位倒序对应原数组下标;二进制位上为1的就取,不为1的就不取。...原创 2021-06-30 13:31:51 · 1994 阅读 · 0 评论