4.算法
徒伤
真正的勇气在极端的胆怯和鲁莽之间
展开
-
LeetCode 136-只出现一次的数字
1. 只出现一次的数字 //只出现一次的数字 时间复杂度 O(n) //方法2:异或运算(二进制上同位上 相同即为0 不同即为1) //例:int a,b a^a=0 a^b^a=b public int singleNumber(int[] nums) { int ans = nums[0]; if (nums....原创 2020-01-15 12:59:13 · 217 阅读 · 0 评论 -
LeetCode 147-对链表进行插入排序
1. 对链表进行插入排序public class SortList147 { //定义一个单链表 public class ListNode { int val; //当前节点值 ListNode next; //下一个节点值 //构造方法 初始化当前节点值 ListNode(...原创 2020-01-14 20:13:45 · 179 阅读 · 0 评论 -
LeetCode 328-奇偶链表
1. 奇偶链表public class OddEvenList328 { //定义一个单链表 public class ListNode { int val; //当前节点值 ListNode next; //下一个节点值 //构造方法 初始化当前节点值 ListNode(int...原创 2020-01-14 19:00:25 · 192 阅读 · 0 评论 -
LeetCode 234-回文链表
1. 回文链表public class IsPalindrome234 { //定义一个单链表 public class ListNode { int val; //当前节点值 ListNode next; //下一个节点值 //构造方法 初始化当前节点值 ListNode(in...原创 2020-01-14 12:42:37 · 178 阅读 · 0 评论 -
LeetCode 1290-二进制链表转整数
1. 二进制链表转整数(10进制)public class GetDecimalValue1290 { //定义一个单链表 public class ListNode { int val; //当前节点值 ListNode next; //下一个节点值 //构造方法 初始化当前节点值 ...原创 2020-01-14 12:14:04 · 239 阅读 · 0 评论 -
LeetCode 203-移除链表节点
1. 移除链表节点public class RemoveElements203 { //定义一个单链表 public class ListNode { int val; //当前节点值 ListNode next; //下一个节点值 //构造方法 初始化当前节点值 ListNod...原创 2020-01-14 10:05:35 · 147 阅读 · 0 评论 -
LeetCode 160-相交链表
1. 相交链表public class GetIntersectionNode160 { //定义一个单链表 public class ListNode { int val; //当前节点值 ListNode next; //下一个节点值 //构造方法 初始化当前节点值 List...原创 2020-01-13 21:57:58 · 99 阅读 · 0 评论 -
LeetCode 92-反转链表
1. 反转链表public class ReverseList92 { //定义一个单链表 public class ListNode { int val; //当前节点值 ListNode next; //下一个节点值 //构造方法 初始化当前节点值 ListNode(int ...原创 2020-01-13 21:52:58 · 792 阅读 · 0 评论 -
LeetCode 142-环形链表
1. 环形链表public class DetectCycle142 { //定义一个单链表 public class ListNode { int val; //当前节点值 ListNode next; //下一个节点值 //构造方法 初始化当前节点值 ListNode(int...原创 2020-01-13 20:36:02 · 130 阅读 · 0 评论 -
LeetCode 141-环形链表
1. 环形链表public class HasCycle141 { //定义一个单链表 public class ListNode { int val; //当前节点值 ListNode next; //下一个节点值 //构造方法 初始化当前节点值 ListNode(int x)...原创 2020-01-13 19:47:53 · 125 阅读 · 0 评论 -
LeetCode 876-链表的中间节点
1.链表的中间节点public class MiddleNode876 { //定义一个单链表 public class ListNode { int val; //当前节点值 ListNode next; //下一个节点值 //构造方法 初始化当前节点值 ListNode(in...原创 2020-01-13 18:52:31 · 119 阅读 · 0 评论 -
LeetCode 19-删除链表中的倒数第N个节点
1. 删除链表中的倒数第N个节点public class RemoveNthFromEnd19 { //定义一个单链表 public class ListNode { int val; //当前节点值 ListNode next; //下一个节点值 //构造方法 初始化当前节点值 ...原创 2020-01-13 13:53:03 · 127 阅读 · 0 评论 -
LeetCode 237-删除链表中的节点
1.删除链表中的节点public class DeleteNode237 { //定义一个单链表 public class ListNode { int val; //当前节点值 ListNode next; //下一个节点值 //构造方法 初始化当前节点值 ListNode(i...原创 2020-01-13 12:40:18 · 120 阅读 · 0 评论 -
LeetCode 83-删除链表中重复元素
1.删除链表中重复元素public class DeleteDuplicates83 { //定义一个单链表 public class ListNode { int val; //当前节点值 ListNode next; //下一个节点值 //构造方法 初始化当前节点值 List...原创 2020-01-13 12:24:48 · 140 阅读 · 0 评论 -
LeetCode 206-反转链表
1. 反转链表public class ListReverse206 { //定义一个单链表 public class ListNode { int val; //当前节点值 ListNode next; //下一个节点值 //构造方法 初始化当前节点值 ListNode(int...原创 2020-01-11 16:45:13 · 99 阅读 · 0 评论 -
LeetCode 02-两数相加
1.两数相加public class AddTwoNumber02 { //定义一个单链表 public class ListNode { int val; //当前节点值 ListNode next; //下一个节点值 //构造方法 初始化当前节点值 ListNode(int ...原创 2020-01-11 15:40:14 · 153 阅读 · 0 评论 -
LeetCode 09-回文数
1. 回文数//回文数//例:121 反转后也为121 所以121是回文数(负数都不是回文数)public class IsPalindrome09 { public boolean isPalindrome(int x) { //StringBuilder(3 +"") 参数表示是值为3的String类型 ;StringBuilder(3) 参数表示Str...原创 2020-01-11 12:50:37 · 118 阅读 · 0 评论 -
LeetCode 26-删除排序数组中的重复项
1.删除排序数组中的重复项public class RemoveDuplicates26 { /**删除排序数组中的重复项 时间复杂度:O(n) i和j最多都走n步 * 例:nums = [1,1,2], 返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。 * @param nums 待排序数组 * @return ...原创 2020-01-11 12:22:40 · 130 阅读 · 0 评论 -
LeetCode 21-合并两个有序链表
1.合并两个有序链表public class MergeTwoLists21 { //定义一个单链表 public class ListNode { int val; //当前节点值 ListNode next; //下一个节点值 //构造方法 ListNode(int x) { v...原创 2020-01-10 22:22:37 · 131 阅读 · 0 评论 -
LeetCode 20-有效括号
1.有效括号//例:( ) ( ( ) 时间复杂度:O(n)public class IsValid20 { // 存储括号的数据结构HashMap private HashMap<Character, Character> mappings; // 构造方法 初始化数据 public IsValid20() { ...原创 2020-01-09 13:25:28 · 105 阅读 · 0 评论 -
LeetCode 07-整数反转
1.整数反转//2^31-1=2147483647,-2^31=-2147483648//Integer溢出判断是因为MAX_VALUE : 2147483647 MIN_VALUE : -2147483648 他要判断最后一位不要大于 7 和 不要小于8public class ReserveNum07 { public int reverse(int x) { ...原创 2020-01-08 13:36:58 · 123 阅读 · 0 评论 -
LeetCode 01-两数之和
1. JAVA代码实现/**LeetCode 01-两数之和 * 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 * 你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。 * 例:给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0]...原创 2020-01-06 12:55:56 · 136 阅读 · 0 评论 -
插入排序
插入排序核心思想:将无序区的第一个元素插入到有序区的合适位置//插入排序public class Test { public static void sort(int arr[]) { int i, j; //外层循环控制趟数。i 还要代表待排序区的第一个元素的索引 for (i = 1; i < arr.length; i++...原创 2019-12-11 21:45:31 · 89 阅读 · 0 评论 -
直接选择排序
直接选择排序核心思想:从无序区中选择一个最小值,和无序区的第一个元素互换位置//直接选择排序public class TestSelectSort { public static void sort(int arr[]) { int temp = 0; //外层循环控制趟数。 i的值代表了待排序区的第一个元素的索引 for (int...原创 2019-12-11 21:43:31 · 110 阅读 · 0 评论 -
冒泡排序(交换排序)
//冒泡排序public static void sortAsc(int[] arr){ //外层循环 共走几趟 for (int i = 0; i <arr.length-1 ; i++) { //内层循环 每趟走几次 for (int j = 0; j <arr.length-1-i ; j++) { /...原创 2019-12-11 21:40:58 · 173 阅读 · 0 评论 -
图解Dijkstra(迪杰斯特拉)算法
第一题:从 节点1 到 节点6 的最短路径(注:①先创建两个集合,S={ }集合用来装路线确定的,U={ }集合用来装路线未确定的 ②相邻节点才有权重值,不相邻相当于无限远,用∞表示 ③每确定一个节点都要更新路线未确定的节点的权重,务必要最小)第一步: S={ 1(0)} U={ 2(1),3(12),4(∞),5(∞...原创 2019-11-29 17:11:08 · 922 阅读 · 3 评论