算法
文章平均质量分 70
20481024
一般
展开
-
LeetCode122彩票 低卖高卖最大
public int maxProfit2(int[] prices) { int maxValue=0; int start =-1; //买入点 int end = -1;//卖出点 for (int i = 1; i <prices.length ; i++) { if(prices[i]<prices[i-1]){ //降的话高点卖出 或者最后一天 if(end!...原创 2020-07-10 14:32:40 · 259 阅读 · 0 评论 -
LeetCode彩票 数组最大差 暴力 动态
1暴力 public int maxProfit(int[] prices) { if(prices.length<=1){ return 0; } int max =0; for (int i = 0; i <prices.length ; i++) { int temp = prices[i]; for (int j = i; j <price.原创 2020-07-10 11:29:19 · 228 阅读 · 0 评论 -
LeetCode面试题 17.13. 恢复空格 字典匹配字符串 最少未识别 动态
动态 public int respace(String[] dictionary, String sentence) { int slen = sentence.length(); int[] dp = new int[slen + 1]; //1确定状态 前i个字符串最少匹配个数 dp[0] = 0; for (int i = 1; i <= slen; i++) { //过程 dp[i] = dp[..原创 2020-07-09 23:14:09 · 173 阅读 · 0 评论 -
LeetCode1091 最短路径 dfs bfs 递归 广度
测试用例 System.out.println("= " + new test3().shortestPathBinaryMatrix(new int[][]{{0, 1, 0, 1, 0}, {1, 0, 0, 0, 1}, {0, 0, 1, 1, 1}, {0, 0, 0, 0, 0}, {1, 0, 1, 0, 0}})); System.out.println(" = " + new test3().shortestPathBinaryMatrix(new in..原创 2020-07-09 17:36:33 · 257 阅读 · 0 评论 -
Leecode63不同路径 深度 和动态
1 深度 超时 int search(int[][] obstacleGrid,int i,int j){ if(obstacleGrid[i][j]==1){ return 0; } //结束条件 if(i==0&&j==0){ return 1; } int sum=0; //状态转移 if(i>..原创 2020-07-07 01:06:29 · 1263 阅读 · 0 评论 -
LeetCode刷670 最大交换
先排序 挑最大的与第一个不同的交换 public int maximumSwap(int num) { String s = String.valueOf(num); char[] chars =s.toCharArray(); Arrays.sort(chars); int change=0; int index=-1; int changeindex =-1; char[] newc ..原创 2020-07-02 00:07:27 · 163 阅读 · 0 评论 -
Leetcode刷题718公共最长数组
public int findLength(int[] A, int[] B) { int max =0; for (int i = 0; i <A.length ; i++) { for (int j = 0; j <B.length ; j++) { int itemp=i; int jtemp=j; int temp =0; ..原创 2020-07-01 13:55:48 · 2130 阅读 · 0 评论 -
LeetCode 215数组排序相关冒泡 选择 快速
冒泡 public int findKthLargest(int[] nums, int k) { for (int i = 0; i <nums.length-1 ; i++) { for (int j = 1; j <nums.length-i ; j++) { if(nums[j-1]>nums[j]){ int temp = nums[j-1]; .原创 2020-06-29 11:44:03 · 142 阅读 · 0 评论 -
LeetCode刷题209最小子数组 滑动窗口
public int minSubArrayLen(int s, int[] nums) { //边界 if(nums==null||nums.length==0){ return 0; }else if(nums.length==1){ return nums[0]>=s?1:0; } int start =0, end=0; int sum=num...原创 2020-06-28 14:44:37 · 197 阅读 · 0 评论 -
LeetCode1014. 最佳观光组合 A[i] + A[j] + i - j最大值
/** * * 程序问题变数学问题 出公式变换求解 * A[i] + A[j] + i - j * max(0....Ai+i) +Aj-j */ public int maxScoreSightseeingPair(int[] a) { int ma =a[0],max=a[0]+a[1]-1; for (int i = 1; i <a.length-1 ; i++) { ..原创 2020-06-17 20:39:08 · 256 阅读 · 0 评论 -
LeetCode394. 字符串解码3[a]2[bc]
public String decodeString(String s) { LinkedList<Character> characters = new LinkedList<>(); char[] chars = s.toCharArray(); for (int i = 0; i < chars.length; i++) { if (chars[i] == ']') { ...原创 2020-06-17 15:27:52 · 566 阅读 · 0 评论 -
LeetCode103. 二叉树的锯齿形层次遍历
在这里插入代码片原创 2020-06-17 15:26:02 · 104 阅读 · 0 评论 -
Leetcode刷题 297. 449.二叉树 搜索二叉树的序列化与反序列-层序遍历
void test(){ TreeNode treeNode1 = new TreeNode(1); TreeNode treeNode2 = new TreeNode(2); TreeNode treeNode3 = new TreeNode(3); TreeNode treeNode4 = new TreeNode(4); TreeNode treeNode5 = new TreeNode(5); ...原创 2020-06-16 14:34:22 · 151 阅读 · 0 评论 -
LeetCode 70 经典爬楼梯 动态规划
第一次提交class Solution { public int climbStairs(int n) { if(n<1){ return 0; } if(n==1){ return 1; } if(n==2){ return 2; } int[] dp = new int[n]; dp[0]=1..原创 2020-06-13 16:46:22 · 149 阅读 · 0 评论 -
LeetCode904. 水果成篮-最长子串问题
//最长子串 滑动窗口 //最长子串 滑动窗口 private static int productExceptSelf(int[] tree) { int start = 0; int max=0; HashMap<Integer, Integer> map = new HashMap<>(); for (int i = start; i <tree.length ; i++) { ..原创 2020-06-13 16:30:17 · 192 阅读 · 0 评论 -
LeetCode481 构建神奇字符串 S = 122112122
/** * 双指针 * 一个读取 一个写入 */ public static void magicalString(int n) { //边界 if(n<=0){ return ; } int[] ints = new int[n]; int next = 1; ints[0] = 1; ints[1] = 2; ...原创 2020-06-12 15:49:09 · 242 阅读 · 1 评论 -
LeetCode刷题15. 三数之和-三指针
三指针 /** * 使用3指针 * 定义指针初始位置 以及移动优先级 end》left》first * 移动边界处理 1 3指针值相等时 重置指针位置 * 什么时候停止移动 1 左右指针的循环移动终止于 left>=end * 方法结束fist指针与end指针距离差小于2 * * 特殊用例 * 0 * 000 * 3,0,-2,-1,1,2 */ private static ..原创 2020-06-12 14:12:48 · 223 阅读 · 0 评论 -
LeetCode739. 每日温度
private static int[] productExceptSelf(int[] tree) { int[] ints = new int[tree.length]; for (int i = tree.length-1; i >=0 ; i--) { if(i==tree.length-1){ ints[i]=0; continue; }...原创 2020-06-12 11:13:39 · 113 阅读 · 0 评论 -
LeetCode9,125验证回文串 双指针 反转字符串
1双指针 char[] chars = String.valueOf(num).toCharArray(); int i=0; int j=chars.length-1; while (j>=i){ if(chars[i]!=chars[j]) { return false; } j--; i..原创 2020-06-10 11:36:19 · 145 阅读 · 0 评论 -
LeetCode刷题46. 把数字翻译成字符串
递归public class test3 { public static void main(String[] args) { char[] chars = String.valueOf(24).toCharArray(); int i = productExceptSelf(chars, 0); System.out.println("s = " + i); } public static int productExceptS..原创 2020-06-10 09:53:50 · 102 阅读 · 0 评论 -
LeetCode刷题 -LRU
class LRUCache { public LRUCache(int capacity) { cap = capacity; fist.next=last; last.pre=fist; } Node fist= new Node(); Node last = new Node(); Map<Integer,Node> map = new HashMap<>(); in..原创 2020-06-10 09:55:38 · 139 阅读 · 0 评论 -
LeetCode刷题98. 验证二叉搜索树
1 根据中序遍历有序的规则 验证/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */class S...原创 2020-06-10 09:56:12 · 117 阅读 · 0 评论 -
LeetCode刷题3无重复字符的最长子串
关键indexof(char,startindex)1暴力class Solution { public int lengthOfLongestSubstring(String s) { if(s.isEmpty()){ return 0; } Set<Integer> vv = new HashS...原创 2020-06-10 09:56:25 · 107 阅读 · 0 评论 -
LeetCode刷题55跳跃游戏 I
class Solution { public boolean canJump(int[] nums) { return isend(nums,0); } /** * 检查数组越界 */ static boolean isend(int[] ints ,int index){ if(index>=ints....原创 2020-06-10 09:57:09 · 115 阅读 · 0 评论 -
LeetCode刷题45跳跃游戏 II
1暴力超时 /** * 执行结果: * 超出时间限制 * 显示详情 * 最后执行的输入: * [5,6,4,4,6,9,4,4,7,4,4,8,2,6,8,1,5,9,6,5,2,7,9,7,9,6,9,4,1,6,8,8,4,4,2,0,3,8,5] */ static int search(int[] nums,i...原创 2020-06-10 09:56:54 · 219 阅读 · 0 评论 -
LeetCode刷题53最大子序和
1暴力 static int twoSum(int[] nums) { int max = nums[0]; for (int i = 0; i < nums.length; i++) { int add = 0; for (int j = i; j < nums.length; j++) { ...原创 2020-06-10 09:56:43 · 146 阅读 · 0 评论 -
LeetCode刷题1两数之和
第一次 public int[] twoSum(int[] nums, int target) { HashMap<Integer, Integer> map = new HashMap<>(); int[] inner = new int[2]; for (int i = 0; i <nums.length ; i...原创 2020-06-10 10:05:09 · 98 阅读 · 0 评论 -
LeetCode刷题202快乐数
第一次解 完全独立思考 public boolean isHappy(int n) { Set<Integer> set = new HashSet<>(); while (!set.contains(n)){ char[] chars = String.valueOf(n).toCharArray(); ...原创 2020-06-10 09:54:22 · 107 阅读 · 0 评论