LeetCode
文章平均质量分 85
安安csdn
这个作者很懒,什么都没留下…
展开
-
笔试编程题汇总记录
日期公司安安数据结构思路注意点及相关题目2020.10.1158同城安安1.调整队形 AC2.删除数组中的重复项 保留最后一次出现的重复元素(87%)3.二叉树遍历:数组存储 前序中序后序(AC)2020.10.082020.10.082020.10.082020.10.082020.10.082020.10.082020.10.08...原创 2020-10-13 16:31:21 · 338 阅读 · 0 评论 -
2020.10.11@58同城笔试
文章目录1.调整队形 AC2.删除数组中的重复项(87%)3.二叉树遍历1.调整队形 AC需要将男同学排到一起,女同学排到一起;男生用’B’表示,女生用’G’表示计算出最少需要多少次调换才能将男同学和女同学分开?思路:只有两种情况,一种情况下男生在左边,一种情况下男生在右边;分别统计男生和女生的个数,以及男生和女生各自在数组(字符串)中的下标和,分别进行相减就可以知道要调整的次数public class Main { public static void main(String[]原创 2020-10-13 16:26:43 · 225 阅读 · 0 评论 -
leetcode每日一题(2020.10.12) 530. 二叉搜索树的最小绝对差(简单)
文章目录另外存到数组里边遍历边比较(递归)边遍历边比较(非递归)530. 二叉搜索树的最小绝对差(简单)另外存到数组里/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */class Solution {原创 2020-10-12 22:30:35 · 105 阅读 · 0 评论 -
leetcode每日一题(2020.10.09-10.10) 141. 环形链表(简单) 142. 环形链表 II(中等)
文章目录[141. 环形链表(简单)](https://leetcode-cn.com/problems/linked-list-cycle/)哈希表集合快慢指针(「Floyd 判圈算法」(又称龟兔赛跑算法))1.假设有个哑结点,两者同时从哑结点出发2.没有哑结点,两者同时从头结点出发[142. 环形链表 II(中等)](https://leetcode-cn.com/problems/linked-list-cycle-ii/)快慢指针只能用没有哑结点的形式,因为用了哑结点,链表中就多出来一个节点———原创 2020-10-09 10:41:27 · 179 阅读 · 0 评论 -
leetcode每日一题(2020.10.07) 75. 颜色分类(中等)
文章目录计数法单指针:两次遍历双指针(官方写法):一次遍历双指针另一写法双指针简洁版75. 颜色分类(中等)计数法class Solution { public void sortColors(int[] nums) { int c1 = 0; int c2 = 0; int c3 = 0; //计数 for(int num: nums){ if(num == 0){原创 2020-10-07 10:54:06 · 121 阅读 · 0 评论 -
leetcode每日一题(2020.10.05) 18. 四数之和(中等)
leetcode每日一题汇总15.三数之和(中等)暴力法:会超时/*思路:用了最简单的暴力法,但是直接暴力结果中会出现重复所以在暴力遍历的时候,要去除会产生重复的情况*///anan 2020.10.05class Solution { public List<List<Integer>> threeSum(int[] nums) { List<List<Integer>> res = new ArrayList&l原创 2020-10-05 20:00:25 · 148 阅读 · 0 评论 -
leetcode每日一题(2020.09.28) 117. 填充每个节点的下一个右侧节点指针 II
leetcode每日一题汇总117. 填充每个节点的下一个右侧节点指针 II(中等)考察层序遍历安安:层序遍历/*// Definition for a Node.class Node { public int val; public Node left; public Node right; public Node next; public Node() {} public Node(int _val) { val =原创 2020-10-04 11:56:27 · 103 阅读 · 0 评论 -
leetcode每日一题(2020.10.04) 2. 两数相加
2. 两数相加(中等)安安题解 过了99.81%思路:先把每个链表表示的整数算出来,把这两个整数加起来,再去把这个整数表示成链表的形式但是两数相加就要考虑大数存储的问题,所有最后一个大数的案例就通过不了(官解)遍历链表,只加某一位的值,创建新节点。这样就不会存在大数存储的问题,就可以完美解决/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode nex原创 2020-10-04 10:06:10 · 134 阅读 · 0 评论 -
leetcode每日一题(2020.10.02) 771. 宝石与石头
leetcode每日一题汇总771. 宝石与石头哈希表(安安)class Solution { public int numJewelsInStones(String J, String S) { Map<Character, Integer> map = new HashMap<>(); //遍历字符串,统计每个字符出现的次数 for(int i = 0; i < S.length(); i++){原创 2020-10-03 12:01:40 · 122 阅读 · 0 评论 -
leetcode每日一题(2020.09.30) 701. 二叉搜索树中的插入操作
701. 二叉搜索树中的插入操作1.迭代(anan)(和官解很像)/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val = val; } * TreeNode(int va原创 2020-09-30 23:17:02 · 96 阅读 · 0 评论 -
2020.09.30@深演笔试 保留特定小数位数
1.指定范围内出现9的个数2.全排列3.实现运算器编写程序,实现一个简单的计数器,可以对两个数做加减乘除运算,并可设置小数位(四舍五入)。输入说明:共有四个参数,运算数1, 运算数2,运算符(+、-、*、/),小数位。参数之间空格分隔。输出结果:输出运算结果输入的运算符一定是给定的四种之一,小数位是0~10之间的整数(包含0和10)样例输入:1 2 + 2样例输出:3.00笔试时实现//这是笔试时写的,但是环境不能测通过了多少import java.math.BigDecimal;i原创 2020-09-30 19:07:02 · 92 阅读 · 0 评论 -
leetcode每日一题(2020.09.29) 145 .二叉树的后序遍历
[leetcode题目](https://leetcode-cn.com/problems/binary-tree-postorder-traversal/)[各种递归详解参考](https://leetcode-cn.com/problems/binary-tree-postorder-traversal/solution/bian-li-tong-jie-by-long_wotu/) 前序 144. 二叉树的前序遍历 中序 94. 二叉...原创 2020-09-29 21:58:26 · 127 阅读 · 0 评论 -
leetcode每日一题汇总
日期题目数据结构思路注意点及相关题目2020.09.26113. 路径总和 II2020.09.27235. 二叉搜索树的最近公共祖先2020.09.29145 .二叉树的后序遍历原创 2020-09-29 20:47:49 · 938 阅读 · 2 评论 -
leetcode每日一题(2020.09.26) 113. 路径总和 II
113. 路径总和 II/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */class Solution { List<List<Integer>> res = new Arr原创 2020-09-29 20:47:33 · 98 阅读 · 0 评论 -
2020.09.27@微众银行
1.近似值查询 72%近似值查询时间限制: 4000MS内存限制: 589824KB题目描述:给定一个长度为n的数组a,我们定义一个数x的近似值是在数组a中与x的差值的绝对值最小,如果两个数的绝对值相等,就取较小的那个。比如说对于[2, 5, 7],4的近似值就是5,而6的近似值应该取5,因为5更小。现在有q个询问,对每个询问回答近似值。输入描述第一行两个整数n, q分别表示数组的长度和查询的次数。(1≤n,q≤1e5)第二行n个数分别表示a1, a2, a3, … an。(0≤ai≤1e原创 2020-09-27 21:34:26 · 757 阅读 · 0 评论 -
2020.09.26@360笔试
1.装载货物 当时过了15% 结束之后又写了一个装载货物时间限制: 3000MS内存限制: 786432KB题目描述:搬家公司正在帮助一家人将小物体装箱。一个箱子的大小是有限的,公司可以把一个箱子分成最多k个独立的隔间,将一个箱子分成r个隔间需要r-1个隔板(这一个箱子没有放隔板也拥有一个本身的隔间)。而这一次搬家工作只携带了b个隔板。在每一个隔间中,由于物件放多了容易损坏,最多只能放v个物体。现在这家人有a个物体,请问最少需要多少个箱子,才能将所有的物体装箱?输入描述多组数据,每一行一组原创 2020-09-27 16:18:19 · 1074 阅读 · 0 评论 -
leetcode每日一题(2020.09.27) 235. 二叉搜索树的最近公共祖先
提炼知识点:如何在两个数组中找最后一个相同的值?原创 2020-09-27 11:51:42 · 105 阅读 · 0 评论 -
2020.9.25搜狗笔试
三道编程题1.判断对的题目的个数数学推理题import java.util.*;class Interval { int start; int end;}public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * 返回Interval类,start代表汪仔最少做对了多少道题,end代表汪仔最多做对了多少道题。 * @param n int整型 选择题总数 *原创 2020-09-25 23:04:24 · 158 阅读 · 0 评论 -
2020.9.25奇安信笔试
题型结构单选 20题 40分不定项 10题 20分编程题 2道 40分编程题1.青蛙跳台阶 AC一只青蛙一次可以跳上i级台阶,也可以跳上2级…它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法?输入描述:台阶的总数n输出描述:青蛙跳上一个n级的台阶跳数法输入:10输出:512/*一只青蛙一次可以跳上i级台阶,也可以跳上2级......它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法?输入描述:台阶的总数n输出描述:青蛙跳上一个n级的台阶跳数原创 2020-09-25 17:55:50 · 883 阅读 · 0 评论 -
2020.9.23 金山云后台开发岗笔试
1.子树的权重 结束写的 DFS时间限制: 3000MS内存限制: 589824KB题目描述:首先按照从上到下、从左到右的顺序输入一棵满二叉树中每一个结点对应的权重,例如输入1、1、2表示二叉树的根结点的权重为1,它的左、右两个子节点的权重分别为1和2。然后判断该满二叉树中是否存在这样的非叶子结点:它的左子树上所有结点的权重之和等于右子树上所有结点的权重之和。现在给你一棵满二叉树的所有结点的权重,请编写一个程序,寻找是否存在满足要求的非叶子结点,如果存在输出“Yes”,否则输出“No”。输原创 2020-09-23 22:30:46 · 913 阅读 · 0 评论 -
java牛客网输入处理总结
Java如何从控制台输入不确定长度的数组?方法1:public static void main(String[] args) { Scanner sc = new Scanner(System.in); List<Integer> list=new ArrayList<Integer>(); while (sc.hasNext()) { String[] str=sc.nextLine().split("原创 2020-09-14 15:32:38 · 870 阅读 · 0 评论 -
2020笔试题总结
1.第n个丑数import java.util.Scanner;public class Main { public static int ugly(int num){ int min; int i2 = 0; int i3 = 0; int i5 = 0; int[] a = new int[num]; a[0] = 1; for (int i = 1; i < num;原创 2020-09-18 11:39:27 · 367 阅读 · 0 评论 -
二分查找规律 及 剑指 Offer 53 - I. 在排序数组中查找数字 I
本博客参考二分查找规律, 进行总结及归纳 方便记忆寻找左侧边界的二分查找 返回left和right其实都一样,因为循环终止条件为left==right while 的退出条件是left == right + 1,所以当target比nums中所有元素都大时, 会存在以下情况使得索引越界: 寻找右侧边界的二分查找 while 循环的终止条件是left ==...原创 2020-08-18 11:55:36 · 158 阅读 · 0 评论 -
剑指offer题目代码总结
剑指 Offer 26. 树的子结构二叉树匹配类问题总结B 属于 A 的一部分也可以,没必要一直匹配到叶子节点递归解法recur的返回条件:当节点 B 为空:说明树 B 已匹配完成(越过叶子节点),因此返回 true ;当节点 A 为空:说明已经越过树 A 叶子节点,即匹配失败,返回 false;剑指 Offer 28. 对称的二叉树1.递归解法2.非递归解法(队列)剑指 Offer 27. 二叉树的镜像1.递归解法2.非递归解法(栈或队列)...原创 2020-08-04 11:58:03 · 431 阅读 · 0 评论 -
leetcode二叉树匹配类题目总结
总结剑指 Offer 26. 树的子结构B属于A的一部分也可以,没必要一直匹配到叶子节点recur的返回条件:当节点 B为空:说明树 B 已匹配完成(越过叶子节点),因此返回 true ;当节点 A为空:说明已经越过树 A 叶子节点,即匹配失败,返回 false;面试题 04.10. 检查子树B必须匹配到A的叶子节点剑指 Offer 28. 对称的二叉树100. 相同的树代码简化版:说明:为什么可以简化呢?因为这两棵树必须得是根节点就...原创 2020-08-04 10:38:03 · 182 阅读 · 0 评论 -
剑指offer刷题笔记(java版)8月
剑指 Offer 15. 二进制中1的个数题解剑指 Offer 16. 数值的整数次方题解class Solution { public double myPow(double x, int n) { if(x == 0) return 0; long b = n; double res = 1.0; if(b < 0) { x = 1 / x; b = -b;原创 2020-08-01 17:01:23 · 226 阅读 · 0 评论 -
剑指offer刷题笔记(java版)(7月)
剑指 Offer 03. 数组中重复的数字哈希表/*//java 2020.7.25在哈希表中添加数据,如果表中已经有该项,直接返回即可*/class Solution { public int findRepeatNumber(int[] nums) { Map<Integer, Integer> map = new HashMap<>(); //数据采用的哈希表结构 int res = 0; //在原创 2020-07-30 21:29:54 · 238 阅读 · 0 评论 -
剑指offer题目思路总结
原题号题目范畴思路(简单)剑指 Offer 03. 数组中重复的数字数组1.(暴力法 不可取) 两次遍历2. 在哈希表中添加数据,统计各元素个数,遍历hashmap,找到重复的数字3.在哈希表中添加数据,如果表中已经有该项,直接返回即可(官方题解用的集合,集合添加失败返回即可)(简单)剑指 Offer 04. 二维数组中的查找数组1.(暴力法)2.线性查找 从左上角或右下角开始查找(简单)剑指 Offer 05. 替换空格字符串1.替换函数2.数空格,直...原创 2020-07-30 21:29:22 · 223 阅读 · 0 评论 -
剑指offer---------栈篇
面试题30.包含min函数的栈(155)原题题解方法一:辅助栈和数据栈同步//javaclass MinStack { Stack<Integer> A, B; //B是辅助栈 /** initialize your data structure here. */ public MinStack() { A = new Stac...原创 2020-04-24 09:37:24 · 171 阅读 · 0 评论 -
leetcode 数据库篇--简单题
175.组合两个表题目思想:左外连接# Write your MySQL query statement below# 左外连接查询 # 起别名-- select tp.FirstName, tp.LastName, ta.City, ta.State-- from -- Person tp-- left join -- Address ta-- on--...原创 2020-04-18 17:13:02 · 536 阅读 · 0 评论 -
剑指offer——树篇
面试题32-I.从上到下打印二叉树//java anan 2020.3.31class Solution { public int[] levelOrder(TreeNode root) { if(root == null) return new int[0]; //输入:[] Queue<TreeNode> queue = new...原创 2020-03-31 18:35:34 · 239 阅读 · 0 评论 -
剑指offer----数组篇
面试题20.表示数值的字符串解1:正则#pythonclass Solution: def isNumber(self, s: str) -> bool: pattern = r'^\s*[+-]?(\d+\.?\d*|\.\d+)(e[+-]?[\d]+)?\s*$' matchObj = re.findall(pattern, s) ...原创 2020-03-21 16:30:22 · 272 阅读 · 0 评论 -
剑指offer-------链表篇
836.矩形重叠题解法1:逆向思维 见题解//javaclass Solution { public boolean isRectangleOverlap(int[] rec1, int[] rec2) { /* 1在2的左边:rec1[2] <= rec2[0] 1在2的右边:rec2[2] <= rec1[0] ...原创 2020-03-18 22:59:14 · 239 阅读 · 0 评论 -
贪心算法
NP完全问题教室调度问题每次都选择局部最优解,最终的得到的就是全局最优解背包问题集合覆盖问题方案1可能的集合有2^n个,所以运行时间为O( 2^n)方案2旅行商问题旅行商需要前往5个不同的城市,他需要找出前往这5个城市的最短路径,为此,必须计算每条可能的路径...原创 2020-03-02 13:20:16 · 132 阅读 · 0 评论 -
DP(Dynamic Programming)动态规划
动态规划(英语:Dynamic programming,简称 DP)是一种在数学、管理科学、计算机科学、经济学和生物信息学中使用的,通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。动态规划常常适用于有重叠子问题和最优子结构性质的问题,动态规划方法所耗时间往往远少于朴素解法。动态规划背后的基本思想非常简单。大致上,若要解一个给定问题,我们需要解其不同部分(即子问题),再根据子问题的解...原创 2020-03-01 12:40:29 · 1239 阅读 · 0 评论 -
DFS 回溯 剪枝 合集
46.全排列#pythonclass Solution: #def permute(self, nums: List[int]) -> List[List[int]]: def permute(self, nums): res = [] def dfs(newNnums, res1): if(newNnums ==...原创 2020-02-29 22:13:09 · 468 阅读 · 0 评论 -
剑指offer
面试题3 数组中重复的数字安安思路1:两次遍历时间复杂度O(n^2)//用C语言写出现了超时的问题int findRepeatNumber(int* nums, int numsSize){ for(int i = 0; i < numsSize; i++){ for(int j = i+1; j < numsSize;j++){ ...原创 2020-02-27 09:13:41 · 252 阅读 · 0 评论 -
Leetcode:283.移动零 2020.2.9
给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 示例: 输入: [0,1,0,3,12] 输出: [1,3,12,0,0] 说明: 必须在原数组上操作,不能拷贝额外的数组。 尽量减少操作次数。 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/prob...原创 2020-02-16 07:18:47 · 147 阅读 · 0 评论 -
Leetcode:58. 最后一个单词的长度 python 2020.2.11
给定一个仅包含大小写字母和空格' '的字符串 s,返回其最后一个单词的长度。 如果字符串从左向右滚动显示,那么最后一个单词就是最后出现的单词。 如果不存在最后一个单词,请返回 0。 说明:一个单词是指仅由字母组成、不包含任何空格的 最大子字符串。 示例: 输入: "Hello World" 输出: 5 来源:力扣(Le...原创 2020-02-11 16:31:10 · 334 阅读 · 0 评论 -
Leetcode:6. Z 字形变换 C语言实现 2020.2.11
将一个给定字符串根据给定的行数,以从上往下、从左到右进行Z 字形排列。 比如输入字符串为 "LEETCODEISHIRING"行数为 3 时,排列如下: L C I R E T O E S I I G E D H N 之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:"LCIRETOESIIGEDHN"。...原创 2020-02-11 16:07:35 · 520 阅读 · 0 评论