leetcode
leetcode
zane197
这个作者很懒,什么都没留下…
展开
-
常见排序算法总结
冒泡排序 /** * 重复地走访要排序的元素,一次比较相邻两个元素,如果他们是逆序就把他们调换过来,直到没有元素再需要交换,排序完成。 * * @param nums */ public static void bubbleSort(int[] nums){ int len = nums.length; boolean flag = false; for(int i=0;i<len;i++){ .原创 2020-08-31 17:42:48 · 113 阅读 · 0 评论 -
二叉树遍历的相关算法
public class TreeNode { int val; TreeNode left; TreeNode right; TreeNode(int x){ val=x; }}二叉树的前序遍历对于图中二叉树而言其前序遍历结果为:6 2 0 1 4 5 8 9二叉树的前序遍历即先遍历根结点再遍历左结点最后遍历右结点,使用递归如下:public void preOrder(TreeNode root){ if(root==null){.原创 2020-08-31 11:09:38 · 129 阅读 · 0 评论 -
全排列回溯
public List<List<Integer>> permute(int[] nums) { int len = nums.length; //保存的结果 List<List<Integer>> res = new ArrayList<>(); if(len == 0){ return res; } Deque<...原创 2020-08-03 14:56:15 · 126 阅读 · 0 评论 -
快速幂的汇总
剑指 Offer 16. 数值的整数次方package cn.zanezz.offer.offer16;public class Solution { public double myPow(double x, int n) { int tmp = Math.abs(n); double res = 1d; for (int i = 0; i < tmp; i++) { res *= x; }原创 2020-08-01 11:02:56 · 80 阅读 · 0 评论 -
剑指 Offer 68 - II. 二叉树的最近公共祖先
剑指 Offer 68 - II. 二叉树的最近公共祖先剑指 Offer 68 - II. 二叉树的最近公共祖先思路代码剑指 Offer 68 - II. 二叉树的最近公共祖先https://leetcode-cn.com/problems/er-cha-shu-de-zui-jin-gong-gong-zu-xian-lcof/思路因为lowestCommonAncestor(root, p, q)的功能是找出以root为根节点的两个节点p和q的最近公共祖先,所以递归体分三种情况讨论:如果p原创 2020-06-20 11:24:38 · 118 阅读 · 0 评论 -
面试题56 - I. 数组中数字出现的次数
面试题56 - I. 数组中数字出现的次数面试题56 - I. 数组中数字出现的次数算法思想思路代码实现复杂度位运算补充知识面试题56 - I. 数组中数字出现的次数https://leetcode-cn.com/problems/shu-zu-zhong-shu-zi-chu-xian-de-ci-shu-lcof/算法思想位运算,异或运算思路由于异或运算之后,相同的两个数都变成0这个特性。采用两次遍历异或运算的方式。第一步异或,相同的数其实都抵消了,剩下两个不同的数。这两个数异或结果肯定原创 2020-06-15 21:03:50 · 126 阅读 · 0 评论 -
面试题59 - I. 滑动窗口的最大值
面试题59 - I. 滑动窗口的最大值面试题59 - I. 滑动窗口的最大值算法思想思路实现面试题59 - I. 滑动窗口的最大值题目链接:https://leetcode-cn.com/problems/hua-dong-chuang-kou-de-zui-da-zhi-lcof/算法思想滑动窗口、双端队列思路我们维护一个单调的双向队列,窗口在每次滑动的时候,我就从队列头部取当前窗口中的最大值,每次窗口新进来一个元素的时候,我就将它与队列中的元素进行大小比较:如果刚刚进来的元素比队列的尾部原创 2020-06-15 11:50:54 · 129 阅读 · 0 评论 -
面试题49. 丑数
面试题49. 丑数算法思想思路代码https://leetcode-cn.com/problems/chou-shu-lcof/算法思想动态规划思路一个丑数肯定是由前面的某个丑数乘以2或者乘以3或者乘以5得到的。所以就要定义三个指针p2,p3,p5.这三个指针指向的数字永远指向对应的2,3,5 。初始条件是dp[0] = 1. p2=p3=p5=0;转移方程: dp[i] = min( min(dp[p2],dp[p3]),dp[p5])结果是:dp[n-1]需要注意的是:dp[p2]*原创 2020-06-14 10:51:41 · 155 阅读 · 0 评论 -
leetcode :937. 重新排列日志文件
leetcode :937. 重新排列日志文件你有一个日志数组 logs。每条日志都是以空格分隔的字串。对于每条日志,其第一个字为字母数字标识符。然后,要么:标识符后面的每个字将仅由小写字母组成,或;标识符后面的每个字将仅由数字组成。我们将这两种日志分别称为字母日志和数字日志。保证每个日志在其标识符后面至少有一个字。将日志重新排序,使得所有字母日志都排在数字日志之前。字母日志按内容字母...原创 2019-07-12 14:34:34 · 184 阅读 · 0 评论 -
leetcode系列之NO.121. 买卖股票的最佳时机
public class MaxProfit_1_zane { public static void main(String[] args) { int[] prices = {7, 1, 5, 3, 6, 4}; int[] pricess = {}; System.out.println(maxProfit(pricess)); ...原创 2019-03-23 10:23:33 · 79 阅读 · 0 评论 -
leetcode系列之No.119 杨辉三角2
import java.util.ArrayList;import java.util.List;public class YangHui_K_row_zane { public static void main(String[] args) { getRow(3); } /** * 给定一个非负索引 k,其中 k ≤ 33,返回杨辉三角...原创 2019-03-23 10:20:41 · 120 阅读 · 0 评论 -
leetcode系列(1)之twoSum
import java.util.HashMap;import java.util.Map;public class TwoSum {public static void main(String[] args) {int[] nums = {438, 507, 629, 255, 813, 423, 536, 428, 340, 767, 208, 808, 882, 142, 835, ...原创 2019-03-10 11:29:39 · 178 阅读 · 0 评论 -
leetcoe系列之删除数组中的重复值
import org.junit.Test;public class RemoveDuplicates { /** * @param args */ @Test public void main1() { int[] nums = {0, 0, 1, 1, 1, 1, 1, 2, 2, 2, 3, 3, 4}; in...原创 2019-03-11 10:28:51 · 202 阅读 · 0 评论 -
leetcode系列之27题去除数组指定元素
public class RemoveElement_zane { public static void main(String[] args) { int[] nums = {3, 2, 2, 3}; int val = 2; System.out.println(removeElement1(nums, val)); }...原创 2019-03-12 10:10:19 · 107 阅读 · 0 评论 -
leetcode系列之35搜索插入位置
public class SearchInsert_zane { public static void main(String[] args) { int[] nums = { 1, 3, 5, 6 }; int target = 7; System.out.println(searchIns...原创 2019-03-13 14:39:17 · 106 阅读 · 0 评论 -
leetcode系列之No.122. 买卖股票的最佳时机2
public class MaxProfit_2_zane { public static void main(String[] args) { int[] prices = {7, 1, 5, 3, 6, 4}; int[] pricess = {6, 1, 3, 2, 4, 7}; int[] pricesss = {1, 7, 2, ...原创 2019-03-23 10:25:12 · 85 阅读 · 0 评论 -
leetcode系列之NO.66.加一
public class PlusOne_zane { public static void main(String[] args) { int[] digtits = {9}; int[] d = plusOne(digtits); for (int i = 0; i < d.length; i++) { ...原创 2019-03-23 10:13:52 · 339 阅读 · 0 评论 -
leetcode系列之NO.88.合并两个有序数组
public class MergeTwoArray_zane { public static void main(String[] args) { int[] nums1 = {1, 2, 3, 0, 0, 0}; int m = 3; int[] nums2 = {2, 5, 6}; int n = 3; ...原创 2019-03-23 10:15:24 · 86 阅读 · 0 评论 -
leetcode系列之NO.118.杨辉三角I
给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。import java.util.ArrayList;import java.util.List;public class YangHui_zane { public static void main(String[] args) { generate(5); } /*...原创 2019-03-23 10:18:29 · 112 阅读 · 0 评论 -
leetcode系列之53最大子序和
public class MaxSubArray { public static void main(String[] args) { int[] nums = {-2, 1, -3, 4, -1, 2, 1, -5, 4}; System.out.println(maxSubArray(nums));// for (int i = 0;...原创 2019-03-14 14:12:16 · 118 阅读 · 0 评论