leetcode
后端小伙某龙
这个作者很懒,什么都没留下…
展开
-
七大排序算法(Java实现)
七大排序算法 冒泡排序 选择排序 插入排序 希尔排序 快速排序 归并排序 堆排序 /** * 七大排序算法 * * @author 王子龙 * @date 2020-09-18 9:00 */ public class Sort { private static int[] nums = {1,7,9,5,3,4,2,6,8,0}; public static void main(String[] args) { // 冒泡排序 int[] c原创 2020-09-18 11:24:33 · 165 阅读 · 0 评论 -
二叉树的前中后序遍历的迭代算法
树形结构定义: public class TreeNode { int val; TreeNode left; TreeNode right; TreeNode() {} TreeNode(int val) { this.val = val; } TreeNode(int val, TreeNode left, TreeNode right) { this.val = val; this.left = left;原创 2020-09-15 09:55:47 · 183 阅读 · 0 评论 -
除自身以外数组的乘积
题目: 思路: 数组的不算该元素的乘积,等于左侧数乘积乘以右侧数乘积,两次遍历可得结果 代码: class Solution { public int[] productExceptSelf(int[] nums) { int[] left = new int[nums.length]; int right = 1; left[0] = 1; for(int i = 1; i < left.length; i++) { lef原创 2020-08-10 22:56:58 · 126 阅读 · 0 评论 -
移动零——解法
题目: 思路: 原数组和结果数组的变化:0往左移,非零往右移。 如果能一次移动到位,则时间复杂度低。 对数组从左到右遍历,用一个变量zeros动态记录下标为i的元素左边的零的个数,每次把下标为i的元素覆盖下标为i - zeros的元素,最后给末尾zeros个元素全赋值为0。 代码: class Solution { public void moveZeroes(int[] nums) { int zeros = 0; /** * zeros记录左侧0数,下标为原创 2020-08-10 22:43:12 · 216 阅读 · 0 评论 -
多数元素
题目: 思路: 将数组里的不同元素值看作不同投票人,元素值的下标顺序作为投票顺序。 设定如下规则: 投票人只会给自己投反对票,对于其他人他一定投反对票。 投票为0时更换候选人。 由于该数组一定存在多数元素,也就是说一定存在某人,他的投票次数比所有人加起来的还要多,那他即使反对所有人,也一定有余票支持自己,所以他一定会是最后的候选人。所以最后的候选人为多数元素。 代码: class Solution { public int majorityElement(int[] nums) {原创 2020-08-10 12:24:31 · 104 阅读 · 0 评论 -
二叉树展开为链表
题目: 思路: 利用二叉树的先序遍历,每次遍历时将右孩子入栈,左孩子连接,遍历完之后单链表形成。 代码: /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val = val; } *原创 2020-08-10 08:59:25 · 133 阅读 · 0 评论 -
只出现一次的数字
题目: 思路: 异或操作可以剔除出现偶数次数的元素,所以对该数组全部异或则可得出现一次的数据。 代码: class Solution { public int singleNumber(int[] nums) { int result = nums[0]; /** * 对数组进行异或操作,如果出现两次的数据会被抵消,出现一次的数据则不会,所以全部异或出来的则是出现一次的数据 */ for(int i = 1; i < nums原创 2020-08-09 18:04:19 · 77 阅读 · 0 评论 -
反转单链表
题目: 思想: 三指针反转单链表,利用head少新建一个指针 代码: /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ class Solution { public ListNode reverseList(ListNode head) {原创 2020-08-07 09:32:27 · 79 阅读 · 0 评论 -
二叉树的中序遍历-迭代
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ class Solution { public List<Integer> inorderTraversal(TreeNode root) {原创 2020-08-06 09:36:04 · 93 阅读 · 0 评论