LEEDCODE
骑着蜗牛逛世界
只当个人学习记录之用
展开
-
215: 数组中的第K个最大元素(快速排序、堆排序、选择排序、冒泡排序、计数排序)
1:直观思路,排序后找 public int findKthLargest(int[] nums, int k) { Arrays.sort(nums); return nums[nums.length-k]; }2:利用大根堆nlog(k),亲测没排序快? public int findKthLargest(int[] nums, int k) { PriorityQueue<Integer> heap =原创 2022-02-06 11:39:42 · 531 阅读 · 0 评论 -
232:用栈实现队列
1:s1用来保证push的顺序,和empty操作s2用来保证pop、peek操作 Stack<Integer> s1 =new Stack<>();//push、empty Stack<Integer> s2 =new Stack<>();//pop、peek public MyQueue() { } public void push(int x) { s1.push(x); }原创 2022-02-06 11:15:03 · 220 阅读 · 0 评论 -
20:有效括号
借助Stack,如果为{【(入栈,如果为}】)出栈,但要判断栈是否为空,以及对应字符匹配 public boolean isValid(String s) { Stack<Character> ss =new Stack<>(); for(int i=0;i<s.length();i++){ if('('==s.charAt(i)||'{'==s.charAt(i)||'['==s.charAt(i)){原创 2022-02-05 16:54:48 · 337 阅读 · 0 评论 -
2:两数之和,两个链表相加
给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。第一次遍历:相加,val大于10了,当其中一个为0时,赋值为0相加第二次遍历:把val大于10的处理了,存在进位为null的情况,此时赋值为1 public ListNode addTwoNumbers(ListNode l1, ListNode l2) { ListNode l3 =new ListNode(l1.val+l2.val);原创 2022-02-05 16:34:14 · 279 阅读 · 0 评论 -
206反转链表
1:递归方法1--》2--》3 到 3--》2--》1返回末尾3节点,3节点next置为2,2节点next置为null;2节点next置为1,1节点next置为null public ListNode reverseList(ListNode head){ if(head==null||head.next==null){ return head; } ListNode p =reverseList(head.next);原创 2022-02-05 10:50:03 · 173 阅读 · 0 评论 -
1. 两数之和
双层for循环暴力解法其实我打算借助数组排序(比如二分法做做文章),后期补上原创 2019-11-19 20:24:32 · 104 阅读 · 0 评论 -
1:三层for循环计算转置矩阵的乘积
/** * * @author Administrator * *输出计算矩阵与转置矩阵的乘积 */public class ZhuanZhiArr { //二维矩阵输出 public static void ppt(int arr[][]){ for(int i=0;i<arr.length;i++){ for(int j=0;j<arr[i].leng...原创 2019-07-19 21:54:02 · 476 阅读 · 0 评论 -
2:字符串中左右括号是否匹配的压栈出栈算法
import java.util.LinkedList;/** * 匹配括号字符串的左右个数是匹配 * @author Administrator * */public class Strkuohao { public static boolean StrKuoHaoMat(String a){ LinkedList<String> list=new LinkedL...原创 2019-07-19 22:32:40 · 283 阅读 · 0 评论