- 博客(34)
- 收藏
- 关注
原创 使用谷歌的服务器训练
colab.research.google.com首先挂载谷歌硬盘from google.colab import drivedrive.mount('/content/drive')然后切换到代码所在路径import osos.chdir("/content/drive/MyDrive/Colab Notebooks")就可以加载数据集了#加载csv文件,直接就是矩阵import numpy as npwith open("../data/y_test_m2.csv", encod
2022-02-24 22:37:16
364
原创 激活Anaconda环境并使用jupyter notebook
conda info -e #查看有哪些环境conda activate TF2.1 #激活某一个环境jupyter notebook #使用jupyter notebook
2022-02-11 12:39:48
709
原创 leetcode_top100_easy
1.最小栈设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。push(x) —— 将元素 x 推入栈中。pop() —— 删除栈顶的元素。top() —— 获取栈顶元素。getMin() —— 检索栈中的最小元素。class MinStack { Stack<Integer> stack; Stack<Integer> minStack; /** initialize your data structure he
2021-06-30 11:38:55
88
原创 剑指offer2_中等
1.重建二叉树输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。class Solution { public Map<Integer,Integer> map; public TreeNode buildTree(int[] preorder, int[] inorder) { if(preorder==null||preorder.length==0){ return nu
2021-06-28 15:23:09
105
原创 左神_中级班_07
2.题目二给定一个整数数组A,长度为n,有 1 <= A[i] <= n,且对于[1,n]的整数,其中部分整数会重复出现而部分不会出现。实现算法找到[1,n]中所有未出现在A中的整数。提示:尝试实现O(n)的时间复杂度和O(1)的空间复杂度(返回值不计入空间复杂度)。输入描述:一行数字,全部为整数,空格分隔A0 A1 A2 A3…输出描述:一行数字,全部为整数,空格分隔R0 R1 R2 R3…示例1:输入1 3 4 3输出2 // 请保证arr[0..N-1]上的
2021-06-17 10:30:21
311
原创 左神_中级班_06
1.给你一个字符串类型的数组arr,譬如:String[] arr = { “b\cst”, “d\”, “a\d\e”, “a\b\c” };你把这些路径中蕴含的目录结构给画出来,子目录直接列在父目录下面,并比父目录向右进两格,就像这样:abcdebcstd同一级的需要按字母顺序排列,不能乱。public class Problem01_GetFolderTree { public static class Node { public String name; pub
2021-05-31 10:01:09
202
原创 剑指offer1_简单
1.剑指 Offer 03. 数组中重复的数字找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例 1:输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3(1)自己写的,使用map统计词频,大于1的就是重复的 Map<Integer,Integer> map=new HashMap<>();
2021-05-26 09:22:12
189
原创 左神_中级班_04
2.实现一个特殊栈,除了基本功能,还能返回栈中最小元素解法:两个栈:stackData,stackMin public static class MyStack1 { private Stack<Integer> stackData; private Stack<Integer> stackMin; public MyStack1() { this.stackData = new Stack<Integer>(); this.stackMin
2021-05-05 10:40:30
130
原创 左神_中级班_03
1.洗衣机问题:每个位置的瓶颈的最大值求出每个位置左边需求,与右边需求(1)若左<0,右<0: 至少|左|+|右|(2)若其他: 至少max(|左|+|右|) public static int MinOps(int[] arr) { if(arr==null||arr.length==0){ return 0; } int sum=0; for (int i : arr) { sum+=i; } int size=arr.length; if(s
2021-04-27 10:13:12
355
原创 左神_中级班_02
1.给定一个数组arr,求差值为k的去重数组对 public static List<List<Integer>> allPair(int[] arr, int k) { HashSet<Integer> hashSet=new HashSet<>(); for (int i = 0; i < arr.length; i++) { hashSet.add(arr[i]); } List<List<Integer>
2021-04-23 11:32:26
157
原创 左神_中级班_01
1.数轴上从左到右有n各点a[0], a[1], ……,a[n -1],给定一根长度为L的绳子,求绳子最多能覆盖其中的几个点(1)右侧端点来到每一个点能覆盖多少 // 长度为L的绳子最多覆盖几个点,请保证arr有序 public static int maxPoint(int[] arr, int L) { if(arr==null||arr.length==0){ return 0; } int numMax=Integer.MIN_VALUE; for(int right=0
2021-04-20 11:38:52
280
原创 左神_基础提升班_08_暴力递归到动态规划02
1.排成一条线的纸牌博弈问题(1)暴力解法 public static int win1(int[] arr) { if(arr==null||arr.length==0){ return 0; } return Math.max(f(arr,0,arr.length-1),s(arr,0,arr.length-1)); } //先手函数 public static int f(int[] arr, int i, int j) { if(i==j){ return ar
2021-04-13 08:48:44
166
原创 左神_基础提升班_07_暴力递归到动态规划01
1.机器人到达指定位置方法数(1)暴力递归 public static int ways1(int N, int M, int K, int P) { return walk(N,M,K,P); } // N : 位置为1 ~ N,固定参数 // cur : 当前在cur位置,可变参数 // rest : 还剩res步没有走,可变参数 // P : 最终目标位置是P,固定参数 // 该函数的含义:只能在1~N这些位置上移动,当前在cur位置,走完rest步之后,停在P位置的方法数作为返回
2021-04-10 11:44:55
195
原创 左神_基础提升班_06_大数据以及位运算
1.给定两个有符号32位整数a和b,返回a和b中较大的a * returnA+b*returnB ---------returnA与returnB互斥,可用加法表达if else返回a的条件:(1)if(a和b符号不相同):a>0 返回a(2)if(a和b符号相同):a-b>=0 返回a //请保证参数n,不是1就是0的情况下 //1-->0 //0-->1 public static int flip(int n) { return n ^ 1;//
2021-04-09 10:08:00
134
1
原创 左神_基础提升班_05_Morris遍历和树形dp
1.Morris遍历morris:开始时,cur来到头结点位置(1)如果cur没有左孩子,cur向右移动(cur=cur.right);(2)如果cur有左孩子,找到左子树上最右的节点mostRight:a. 若mostRight的右指针指向空,让其指向cur,然后cur向左移动(cur=cur.left);b. 若mostRight的右指针指向cur,让其指向null,然后cur向右移动(cur=cur.right);(3)cur为空时遍历停止; public static class N
2021-04-04 11:53:11
142
原创 左神_基础提升班_04_滑动窗口以及单调栈
1.滑动窗口(1)通用形式 public static class WindowMax{ public int L; public int R; public int[] arr; public LinkedList<Integer> list; public WindowMax(int [] a){ this.arr=a; this.L=-1; this.R=0; this.list=new LinkedList<>(); }
2021-04-03 10:32:00
244
原创 左神_基础提升班_03_kmp和manacher算法
1.kmp算法 public static int getIndexOf(String s, String m) { if(s==null||m==null||m.length()<1||m.length()>s.length()){ return -1; } char[] cs = s.toCharArray(); char[] cm = m.toCharArray(); int i=0; int j=0; int[] next=getNextArray(c
2021-03-31 09:18:07
184
原创 左神_基础提升班_01_哈希函数与哈希表等
1.哈希函数与哈希表//遍历键的集合for(String key: hashMap.keySet()){ System.out.println(key);}//遍历值的集合for(String value:hashMap.values()){ System.out.println(value);}//遍历hashMap集合Set<Character> set=hashMap.keySet()for(Character ch : set){ System.ou
2021-03-29 09:10:43
141
原创 第八课.暴力递归
N皇后问题:法一:正规解法public static int num1(int n) {//n个皇后 if (n < 1) { return 0; } int[] record = new int[n];//record[i] -->i行的皇后,放在了第几列 return process1(0, record, n); } //潜台词:record[0..i-1]的皇后,任何两个皇后一定不共行、不共列、不共斜线 //目前来到第i行 //record[0..i-1
2021-03-25 11:44:04
173
原创 第四课:二叉树
1.二叉树递归遍历前序: public static void preOrderRecur(Node head) { if(head==null){ return; } System.out.println(head.value); preOrderRecur(head.left); preOrderRecur(head.right); }中序: public static void inOrderRecur(Node head) { if(head==null){
2021-03-22 10:33:56
127
原创 第三课:链表
1.反转单向链表 public static class Node { public int value; public Node next; public Node(int data) { this.value = data; } } public static Node reverseList(Node head) { Node pre=null; Node next=null; while(head!=null){ next=head.next;
2021-03-17 10:09:47
115
1
原创 第二课:复杂排序算法
1.归并排序 public static void mergeSort(int[] arr) { if(arr==null||arr.length<2){ return; } mergeSort(arr,0,arr.length-1); } public static void mergeSort(int[] arr, int l, int r) { if (l==r){ return; } int mid=l+(r-l)/2; mergeSort(arr
2021-03-10 18:55:06
230
原创 第一课:简单排序算法
选择排序:public static void selectionSort(int[] arr) { if(arr==null||arr.length<2){ return; } for (int i=0;i<arr.length-1;i++){ int minIndex=i; for (int j=i+1;j<arr.length;j++){ if (arr[j]<=arr[minIndex]){ minIndex=j; }
2021-03-08 15:02:57
134
原创 堆_23.合并K个有序链表
解法一://全部打乱用ArrayList存,在新建链表class Solution { public ListNode mergeKLists(ListNode[] lists) { List<Integer> list=new ArrayList<>(); if(lists==null){ return null; } for(ListNode listNode:lists){
2021-03-03 08:54:41
59
原创 堆_215.数组中的第K个最大元素
下标为i的节点的父节点下标:(n-2)/2 = n/2 -1下标为i的节点的左孩子节点下标:2*i + 1下标为i的节点的右节点下标:2*i + 2先写一个堆排序public class MergeSort { public static void main(String[] args) { int[] nums={1,2,3,4,5,6}; int n=nums.length; //建堆 for (int j=(n-2)
2021-02-28 10:56:44
70
原创 哈希表_18.四数之和
给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b,c 和 d ,使得 a + b + c + d 的值与 target 相等?找出所有满足条件且不重复的四元组。注意:答案中不可以包含重复的四元组。示例:给定数组 nums = [1, 0, -1, 0, -2, 2],和 target = 0。满足要求的四元组集合为:[ [-1, 0, 0, 1], [-2, -1, 1, 2], [-2, 0, 0, 2]]
2021-02-18 10:49:44
173
1
原创 栈_402. 移掉K位数字
学到的知识点://创建双端队列Deque<Character> deque=new LinkedList<>()//取得字符串中的元素char digit=num.charAt(i)//取队尾元素,eg:队列形式为1234,peekLast取得的元素为1deque.peekLast()//删除队尾元素deque.removeLast();//增加队尾元素deque.addLast(digit)//删除队头元素char digit=deque.removeFir
2021-02-10 12:53:29
69
原创 栈_503.下一个更大的元素2
题目:给定一个循环数组(最后一个元素的下一个元素是数组的第一个元素),输出每个元素的下一个更大元素。数字 x 的下一个更大的元素是按数组遍历顺序,这个数字之后的第一个比它更大的数,这意味着你应该循环地搜索它的下一个更大的数。如果不存在,则输出 -1。示例 1:输入: [1,2,1]输出: [2,-1,2]解释: 第一个 1 的下一个更大的数是 2;数字 2 找不到下一个更大的数; 第二个 1 的下一个最大的数需要循环搜索,结果也是 2。class Solution { public
2021-02-03 12:37:48
60
原创 栈_496. 下一个更大元素
题目:给你两个没有重复元素 的数组 nums1 和 nums2 ,其中nums1 是 nums2 的子集。请你找出 nums1 中每个元素在 nums2 中的下一个比其大的值。nums1 中数字 x 的下一个更大元素是指 x 在 nums2 中对应位置的右边的第一个比 x 大的元素。如果不存在,对应位置输出-1 。输入: nums1 = [4,1,2], nums2 = [1,3,4,2].输出: [-1,3,-1]解释:对于 num1 中的数字 4 ,你无法在第二个数组中找到下一个更大的数
2021-02-01 14:43:31
51
原创 pytorch使用dataLoader加载自己的numpy矩阵数据
import numpy as npfrom torch.utils.data import Dataset,DataLoader,TensorDatasetimport mathimport osimport torchimport torch.nn as nnimport torch.nn.functional as Ffrom torchvision import datasets, transformsimport torch.utils.dataimport matplotlib
2021-01-28 16:41:15
6519
2
原创 栈_20.有效的括号
题目20:给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。有效字符串需满足:1.左括号必须用相同类型的右括号闭合。2.左括号必须以正确的顺序闭合/*可以学到的知识点:*/char ch=s.charAt(i); //获取一个字符串中的单个字母map.containsKey(ch); //判断map集合中是否有键值为ch的键三种解法:第一种:最笨的一种方法:依次获取到每一个字母,如果是左括号就直接压入栈,如果是右括号且栈不为空就分别判断
2021-01-28 12:03:57
78
原创 栈_常用操作_java
/* 栈的常用操作*/Stack<Integer> stack=new Stack();//创建栈stack.push(1);//向栈内添加元素stack.push(2);stack.push(3);System.out.println(stack.toString());int num=stack.peek();//获取栈顶元素System.out.println(num);int temp=stack.pop();//栈顶元素出栈System.out.println(n
2021-01-27 10:55:15
57
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人