算法
程晚
这个作者很懒,什么都没留下…
展开
-
剑指 Offer 13. 机器人的运动范围
算法记录LeetCode 题目:地上有一个m行n列的方格,从坐标 [0,0] 到坐标 [m-1,n-1] 。一个机器人从坐标 [0, 0] 的格子开始移动,它每次可以向左、右、上、下移动一格(不能移动到方格外),也不能进入行坐标和列坐标的数位之和大于k的格子。例如,当k为18时,机器人能够进入方格 [35, 37] ,因为3+5+3+7=18。但它不能进入方格 [35, 38],因为3+5+3+8=19。请问该机器人能够到达多少个格子?算法记录说明一、题目二、分析说明一、题目原创 2022-05-23 09:27:57 · 87 阅读 · 0 评论 -
剑指 Offer 14- I. 剪绳子
算法记录LeetCode 题目:给你一根长度为 n 的绳子,请把绳子剪成整数长度的 m 段(m、n都是整数,n>1并且m>1),每段绳子的长度记为 k[0],k[1]...k[m-1] 。请问 k[0]*k[1]*...*k[m-1] 可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。算法记录说明一、题目二、分析说明一、题目给你一根长度为 n 的绳子,请把绳子剪成整数长度的 m 段(m、n都是整数原创 2022-05-21 14:23:40 · 146 阅读 · 0 评论 -
剑指 Offer 12. 矩阵中的路径
算法记录LeetCode 题目:算法记录说明一、题目二、分析说明一、题目二、分析原创 2022-05-21 12:58:15 · 156 阅读 · 0 评论 -
剑指 Offer 07. 重建二叉树
算法记录LeetCode 题目:输入某二叉树的前序遍历和中序遍历的结果,请构建该二叉树并返回其根节点。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。算法记录说明一、题目二、分析说明一、题目输入某二叉树的前序遍历和中序遍历的结果,请构建该二叉树并返回其根节点。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。二、分析递归函数的参数三个,分别为前序遍历中的根节点、这个根节点开始的前序遍历的左边界,这个根节点开始的前序遍历的右边界 ...原创 2022-05-20 22:54:37 · 272 阅读 · 0 评论 -
187. 重复的DNA序列
187. 重复的DNA序列class Solution { public List<String> findRepeatedDnaSequences(String s) { List<String> list = new ArrayList<>(); Map<String, Integer> map = new HashMap<>(); for (int i = 10; i <=原创 2022-04-10 10:10:52 · 98 阅读 · 0 评论 -
594. 最长和谐子序列
594. 最长和谐子序列双指针+ 滑动窗口class Solution { public int findLHS(int[] nums) { Arrays.sort(nums); int left = 0; //左指针 int right = 1; //右指针 int result = 0; for (; right < nums.length; right++) { // 当.原创 2022-04-12 12:15:36 · 40 阅读 · 0 评论 -
二分模板题 LC704
二分查找模板题原创 2022-05-14 08:55:36 · 64 阅读 · 0 评论 -
3. 无重复字符的最长子串
3. 无重复字符的最长子串给定一个字符串s,请你找出其中不含有重复字符的最长子串的长度。class Solution { public int lengthOfLongestSubstring(String s) { // 双指针 + 哈希map int left = 0; int right = 0; Map<Character, Integer> map = new HashMap<>();...原创 2022-04-07 15:38:00 · 51 阅读 · 0 评论 -
剑指 Offer 58 - II. 左旋转字符串
字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。示例 1:输入: s = "abcdefg", k = 2输出: "cdefgab"class Solution { public String reverseLeftWords(String s, int n) { char[] ch = s.toCharArr原创 2022-04-06 09:06:11 · 40 阅读 · 0 评论 -
416. 分割等和子集 (0-1背包问题)
给你一个 只包含正整数 的 非空 数组 nums 。请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。示例 1:输入:nums = [1,5,11,5]输出:true解释:数组可以分割成 [1, 5, 5] 和 [11] 。class Solution { public boolean canPartition(int[] nums) { // 将数组求和 int sum = 0; for (int num : n原创 2022-04-05 11:53:12 · 262 阅读 · 0 评论 -
135. 分发糖果
class Solution { public int candy(int[] ratings) { //两次局部最优 左向右贪心一次 右向左贪心一次 int[] candyVec = new int[ratings.length]; // 计算第一次贪心 记录在candyVec 比左边大就行(即+1) candyVec[0] = 1; for (int i = 1; i < ratings.length;...原创 2022-04-04 09:07:30 · 47 阅读 · 0 评论 -
134. 加油站
class Solution { public int canCompleteCircuit(int[] gas, int[] cost) { int cur = 0; int sum = 0; int index = 0; //记录出发时加油站编号 for (int i = 0; i < gas.length; i++) { cur += gas[i] - cost[i]; ...原创 2022-04-04 08:32:01 · 238 阅读 · 0 评论 -
344. 反转字符串
class Solution { // 双指针 public void reverseString(char[] s) { int left = 0;//起始指针 int right = s.length - 1;//尾指针 char temp = ' '; while (left < right) { temp = s[left]; s[left] = s[right...原创 2022-04-02 09:36:41 · 391 阅读 · 0 评论 -
17. 电话号码的字母组合
回溯算法电话号码的字母组合原创 2022-04-02 09:19:52 · 75 阅读 · 0 评论