自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 2020/12/1 二分法练习

以167. 两数之和 II - 输入有序数组为例给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2。说明:返回的下标值(index1 和 index2)不是从零开始的。你可以假设每个输入只对应唯一的答案,而且你不可以重复使用相同的元素。示例:输入: numbers = [2, 7, 11, 15], target = 9输出: [1,2]解释: 2 与 7 之和等于目

2020-12-01 10:57:22 94

原创 2020/11/24 222. 完全二叉树的节点个数

一、BFS层序遍历今天的每日一题是求完全二叉树节点的个数,拿到题目我第一反应是可以利用双向队列进行二叉树的BFS层序遍历,每添加一次节点,可以使得计数值加1。代码如下,但是提交后发现运行时间较慢。class Solution { public int countNodes(TreeNode root) { Deque<TreeNode> queue = new LinkedList<>(); if(root==null)return 0;

2020-11-24 15:38:29 169

原创 2020/11/16 80. 删除排序数组中的重复项 II

今天是对数组进行系统性学习的第一天,首先刚开始遇到的题目便是对数组元素的删除问题,从一开始去零操作到后面的删除重复操作。做题的核心思想都为使用双指针的方法,利用一个指针进行for循环遍历数组,到后来的另一个指针进行数组元素的重组,只保留需要的元素。一开始我的思路局限在针对某些不符合要求的数进行删除操作,但是就会导致删除前一个数,后面的数就需要向前移动,增加操作次数和运行时间,同时代码的实现还会有许多的小问题。但是后来从另一个角度来想,既然删除不需要的元素,也可以将需要的都放在数组的开头位置,最后返回原数组

2020-11-16 19:56:14 95

原创 2020/11/13 328. 奇偶链表

每日一题训练class Solution { public ListNode oddEvenList(ListNode head) { if(head==null||head.next==null){ return head; } ListNode cur=head; ListNode pre_even=new ListNode(0); ListNode even=pre_even;

2020-11-13 10:33:43 86

原创 2020/11/12 116. 填充每个节点的下一个右侧节点指针

利用BFS遍历整棵树,利用队列的size()方法,将节点分组,一一设置下一节点class Solution { public Node connect(Node root) { if(root==null){ return root; } Deque<Node> queue=new LinkedList<>(); queue.offer(root); Node tmp=n

2020-11-12 14:16:56 77

原创 2020/11/9 112. 路径总和

递归法注意的是在递归的使用过程中,只是不断把参数传进方法体,返回时sum的值仍为原先的值。/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */class Solution { int flag=0;

2020-11-09 15:53:54 51

原创 2020/11/7前序遍历 144. 二叉树的前序遍历

递归法:class Solution { List<Integer> list = new ArrayList<Integer>(); public List<Integer> preorderTraversal(TreeNode root) { if(root==null) return list; list.add(root.val); if(root.left!=null){

2020-11-07 23:47:51 44

原创 2020/11/4 198. 打家劫舍

动态规划学习的第一天,现在对动态规划的理解主要可以体现在“状态”两个字上。每一个最初的决定都会对后续的决定存在影响,因此可以根据不同时刻的状态写出与前一时刻或后一时刻的状态方程,再进行计算,不断迭代。class Solution { public int rob(int[] nums) { int n=nums.length; if(n==0)return 0; int dp0=0; int dp1=nums[0];

2020-11-04 23:11:58 66

原创 2020/11/1 143. 重排链表

class Solution { public void reorderList(ListNode head) { ListNode l1=head; //1.找到中间节点 ListNode fast=head; ListNode slow=fast; if(head==null){ return; } while(fast.next!=null&&

2020-11-01 23:50:24 59

原创 Day10.30 Leetcode:92.反转链表

Day10.29 Leetcode 92.反转链表开始记录的第一天,这次是对反转链表中的典型题进行练习。因为对递归的运用还不是很熟练,所以这次的实现主要借助迭代的方法完成。class Solution { public ListNode reverseBetween(ListNode head, int m, int n) { ListNode dum=head; ListNode cur=head; ListNode pre=null;

2020-11-01 22:54:56 55

原创 2020/11/1 21. 合并两个有序链表

分别取出两个节点进行比较class Solution { public ListNode mergeTwoLists(ListNode l1, ListNode l2) { ListNode l3=new ListNode(-1); ListNode pre=l3; while(l1!=null&&l2!=null){ if(l1.val>=l2.val){ l3.next

2020-11-01 22:54:30 48

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除