刷题
文章平均质量分 67
唐曌
这个作者很懒,什么都没留下…
展开
-
程序员代码面试指南之归并排序笔记02
一、归并排序1)整体是递归,左边排好序+右边排好序+merge让整体有序2)让其整体有序的过程里用了排外序方法3)利用master公式来求解时间复杂度4)当然可以用非递归实现二、归并排序复杂度T(N) = 2*T(N/2) + O(N^1)根据master可知时间复杂度为O(N*logN)merge过程需要辅助数组,所以额外空间复杂度为O(N)归并排序的实质是把比较行为变成了有序信息并传递,比O(N^2)的排序快三、用常见面试题再深入理解一下归并排序的精髓在一个数原创 2021-07-24 14:19:31 · 489 阅读 · 0 评论 -
Java 面试每日一题
面向对象编程(OOP)Java是一一个支持并发、基于类和面向对象的计算机编程语言。下面列出了面向对象软件开发的优点:代码开发模块化,更易维护和修改。.代码复用。增强代码的可靠性和灵活性。.增加代码的可理解性。面向对象编程有很多重要的特性,比如:封装,继承,多态和抽象。下面的章节我们会逐个分析这些特性。封装封装给对象提供了隐藏内部特性和行为的能力。对象提供-些能被其他对象访问的方法来改变它内部的数据。在Java当中,有3种修饰符: public, private 和protected。每原创 2021-06-09 15:29:30 · 343 阅读 · 0 评论 -
程序员代码面试指南之笔记01
一、算法数据结构基础课第一节1.1 评估算法优劣的核心指标是什么?(1)时间复杂度(流程决定)(2)额外空间复杂度(流程决定)(3)常数项时间(实现细节决定)1.2什么是时间复杂度?时间复杂度怎么估算?(1)常数时间的操作(2)确定算法流程的总操作数量与样本数量之间的表达式关系(3)只看表达式最高阶项的部分1.3 何为常数时间的操作?如果一个操作的执行时间不以具体样本量为转移,每次执行时间都是固定时间。称这样的操作为常数时间的操作。1.4 常见的常数时间的操作原创 2021-05-22 10:32:54 · 602 阅读 · 5 评论 -
力扣-每日一题“罗马数字转整数”
罗马数字包含以下七种字符:I,V,X,L,C,D和M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做II,即为两个并列的 1。12 写做XII,即为X+II。 27 写做XXVII, 即为XX+V+II。通常...原创 2021-03-03 17:10:11 · 125 阅读 · 2 评论 -
力扣-每日一题
给你一个 32 位的有符号整数 x ,返回 x 中每位上的数字反转后的结果。如果反转后整数超过 32 位的有符号整数的范围[−231,231− 1] ,就返回 0。假设环境不允许存储 64 位整数(有符号或无符号)。示例 1:输入:x = 123输出:321示例 2:输入:x = -123输出:-321示例 3:输入:x = 120输出:21示例 4:输入:x = 0输出:0提示:-231 <= x <= 231 - 1Jav...原创 2021-03-02 14:24:07 · 186 阅读 · 0 评论 -
“两数之和“-力扣01
给定一个整数数组 nums和一个整数目标值 target,请你在该数组中找出 和为目标值 的那两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。你可以按任意顺序返回答案。示例 1:输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。示例 2:输入:nums = [3,2,4], target = 6输出:...原创 2021-03-02 14:14:16 · 136 阅读 · 1 评论