自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 编程题(二)

具体而言,快速幂算法将指数n表示为其二进制形式,然后通过递归或迭代的方式将幂运算拆解成若干个平方和乘法的运算,以实现快速求解幂运算的目的。由于递归会重复计算相同的结果,所以创建一个数组来保存 f(n) 的值,所以每次计算之前判断一下 f(n) 是否计算过,若之前计算过,直接返回即可。在动态规划中的应用:矩阵快速幂可以用来优化某些动态规划算法的时间复杂度,比如: Fibonacci 数列的计算、矩阵的乘法、字符串的匹配等问题。动态规划:动态规划是将问题分解成更小的子问题,并保存子问题的解,以避免重复计算。

2024-03-17 11:20:49 832

原创 编程题(一)

由于Java中不能实现自动扩容,所以需要新建一个字符数组(C++不用),遍历原来的字符串,当遇到空格时,向其添加“%20”;数组中某些数字是重复的,但不知道有几个数字是重复的,也不知道每个数字重复几次。例如,如果输入长度为7的数组[2,3,1,0,2,5,3],那么对应的输出是2或者3。交换的过程中,如果发现已有元素的值和下标相等,则将该重复的元素返回。解题思路二:创建一个哈希表,依次遍历元素,如果该元素不存在表中,将该元素加入;利用栈后进先出的特性,创建一个栈,先把遍历结果存入栈中,最后再弹出栈中元素。

2024-03-14 16:39:57 893

原创 软件开发笔试(一)

3、破坏请求和保持条件:采用静态分配的方法,即进程在运行前一次申请完它所需要的全部资源,它资源未满足前,不让它投入运行,一旦投入运行后,这些资源就一直归它所有,该进程就不会再请求别的任何资源了。首先执行 fact(n),当n > 1时,会向上一层返回n * fact(n-1),即递归 fact (n-1)函数,直到n = 1时(此时满足n

2024-03-12 14:26:21 1046

原创 冒泡排序。

再依次比较两个元素,使得第二大的数排到倒数第二个位置,完成第二趟排序。邻近的两个数进行比较,如果左边的数大于右边的数,将两个数进行交换。重复上述操作,使得最大的元素排到最后,完成第一趟排序。若一共有n个元素,则需要比较 n-1 趟。第二次比较,16比27小,不需要调换位置。第四次比较,27比30小,不需要调换位置。第五次比较,30比49小,不需要调换位置。第一次比较,9比16小,不需要调换位置。第三次比较,27比23大,调换位置。第六次比较,49比21大,调换位置。第七次比较,49比35大,调换位置。

2024-03-03 15:38:55 146

原创 快速排序(重要)

从待排的序列中任意选取一个元素(一般选第一个)作为分界值,与离它最远的元素进行比较。经过一趟下来形成:左边子序列(都比分界值小),分界值,右边子序列(都比分界值大)。左边序列选择27为分界值与13进行比较,右边序列选择76为分界值与65进行比较。左边序列27与38进行比较,右边序列76为分界值与97进行比较。再将左右两个序列按照上述方法进行排序,直到分不出子序列为止。此时,49大于左边的所有元素,小于右边的所有元素。将所有比它小的元素放在左边,比它大的放在右边。选择49为分界值,与最远的元素27进行比较。

2024-03-03 11:07:02 318

原创 Java基础(三)

TreeMap中键值对是按照键的顺序进行排序的,因此它是有序的。第二类方法:(当比较规则有多个,且需要在多个比较规则之间频繁切换的时候)选择TreeSet / TreeMap自带的比较器参数的构造器,重写compare方法,自定义排序规则。hascode()方法用于返回对象的哈希码值,哈希码值是根据对象的内存地址计算得出的一个整数,可以用于在哈希表等数据结构中进行快速查找。2. 键不可重复:HashMap中的键是唯一的(重写equals方法保证的),如果插入一个已经存在的键,则会覆盖原有的值。

2024-03-01 01:17:30 781

原创 Java 基础(二)

通过实现接口,类可以获得接口中定义的方法,并且可以在类中提供方法的具体实现。,jdk1.8中 ArrayList底层先创建一个长度为0的数组,当第一次添加元素(调用add()方法)时,会初始化一个长度为10的数组。在这三个例子中,list1是一个空的ArrayList,list2包含了元素"apple"、"banana"和"orange",list3是一个初始容量为20的ArrayList。这种语法可以用来表示集合c中的元素类型的上界,即集合c中的元素类型必须是E或者E的子类。如有错误,欢迎在评论区指出~

2024-02-29 00:09:11 881 1

原创 Java 基础(一)

指的是类中的属性和方法。实例成员是每个对象都会拥有的属性和方法,而静态成员是属于类本身的属性和方法,不依赖于对象的创建而存在。有了static,使成员变量或者方法成为类级别的成员(而不是对象级别的成员),这样就可以在没有类的时候被访问到了。Object类中的一个方法,每一个对象都有这个方法,一个对象的finalize方法只会调用一次,用于在对象被垃圾回收前执行一些清理操作。因此,JDK包含了JRE和其他开发工具,JRE包含了JVM和运行Java程序所需的类库,而JVM是Java程序运行的环境。

2024-02-28 16:47:42 906

空空如也

空空如也

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

TA关注的人

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