Hilda

「离开世界之前 一切都是过程」

力扣 88. 合并两个有序数组

88. 合并两个有序数组

88. 合并两个有序数组 88. 合并两个有序数组 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 class Solution { public void merge(int[] nums1, int m, int[] nums2, int n) { if (n == 0) return; ...

力扣 27. 移除元素 26. 删除有序数组中的重复项 80. 删除有序数组中的重复项 II

3道题:27. 移除元素 26. 删除有序数组中的重复项 80. 删除有序数组中的重复项 II

27. 移除元素 27. 移除元素 1 2 3 4 5 6 7 8 9 10 11 class Solution { public int removeElement(int[] nums, int val) { int k = 0; for (int i = 0; i < nums.length; i++) { ...

力扣 229. 多数元素 II(摩尔投票算法)

229. 多数元素 II

229. 多数元素 II 229. 多数元素 II 给定一个大小为 n 的整数数组,找出其中所有出现超过 ⌊ n/3 ⌋ 次的元素。 示例 1: 1 2 输入:nums = [3,2,3] 输出:[3] 示例 2: 1 2 输入:nums = [1] 输出:[1] 示例 3: 1 2 输入:nums = [1,2] 输出:[1,2] 提示: 1 <=...

力扣 169. 多数元素(摩尔投票算法)

169. 多数元素

169. 多数元素 169. 多数元素 给定一个大小为 n 的数组 nums ,返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的,并且给定的数组总是存在多数元素。 示例 1: 1 2 输入:nums = [3,2,3] 输出:3 示例 2: 1 2 输入:nums = [2,2,1,1,1,2,2] 输出:2 提...

利用numpy对图像进行操作

NumPy 提供了强大的数组操作功能,Matplotlib 提供了图像读取和显示的功能,两者结合可以实现图像的翻转、颜色变换、降采样和打马赛克等效果。

利用numpy对图像进行操作 利用matplotlib读取图片并显示: 1 2 3 4 5 import numpy as np import matplotlib.pyplot as plt fish = plt.imread("fish.png") plt.imshow(fish) 左右翻转: 1 2 fish1 = fish[:,::-1] plt.imshow(f...

numpy 19道练习题

比较简单

numpy19题 题目列表 作业: 1、创建一个长度为10的一维全为0的ndarray对象,然后让第5个元素等于1 2、创建一个元素为从10到49的ndarray对象 3、将第2题的所有元素位置反转 4、使用np.random.random创建一个10*10的ndarray对象,并打印出最大最小元素 5、创建一个10*10的ndarray对象,且矩阵边界全为1,里面全为0 ...

100 KMP算法原理和代码详解

KMP 算法,一种时间复杂度为 O(n+m) 的高效算法。 文章从 next 数组的定义入手,逐步讲解 KMP 算法的匹配原理、next 数组的快速生成方法,并通过代码示例和复杂度分析,帮助读者彻底理解 KMP 算法的精髓。 此外,还展示了 KMP 算法在 LeetCode 题目中的应用,以及与 Java 内置 indexOf 方法的性能对比。 除了KMP算法,还展示了“另一棵树的子树”的题目,如何使用暴力递归方式解决。

要解决的问题: s1字符串是否包含s2字符串,如果包含返回s1中包含s2的最左开头位置,不包含返回-1(当然也可以返回s1中包含s2的所有开头位置) 暴力方法就是s1的每个位置都做开头,然后去匹配s2整体,时间复杂度O(n * m) KMP算法可以做到时间复杂度O(n + m) 算法讲解需要分为5个部分: 理解next数组的定义,定义是一切的关键,前缀和后缀的最大匹配长度...

三月 0302~0308 力扣算法练习总结

题号 :1,9,13,14,162,20,21,26,27,28,35,58,66,67

0304 1. 两数之和 1. 两数之和 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。 你可以按任意顺序返回答案。 示例 1: 1 2 3 输入:nums = [2,7,11,15], target = 9...

006 二分搜索

在有序数组中查找特定元素是否存在、寻找大于等于某数的最左位置、小于等于某数的最右位置,以及在无序但相邻不相等的数组中寻找峰值(力扣162) 。

算法系列: 003~005 二进制和位运算,三傻排序算法,对数器 1)在有序数组中确定num存在还是不存在 下面是我自己首先写的方法: 注:首先传入的数组一定是有序的(这是默认的条件) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 public static boolean find_num(int[] arr, int num) { i...

003~005 二进制和位运算,三傻排序算法,对数器

常见位运算的原理,正数和负数在计算机中如何用二进制表示,及互相转换方法,计算机不会自动处理溢出。冒泡、选择、插入排序的思路及代码。对数器的概念和实现,用于验证算法正确性,特别是没有在线测试环境时。包括如何生成随机数据、编写暴力解、比较结果等。

003 二进制和位运算 1 二进制与位运算 计算机认得二进制,人们只为了便于看(或者说便于编程)喜欢十进制。 位运算是计算机底层的基础和基石。 所有的计算最终都要分解为位运算才能执行。现代处理器包含各种各样的硬件电路,例如加法器、乘法器、寄存器、缓存等。 这些硬件电路的实现依赖于位运算的原理。 2/3 正数/负数如何用二进制表示 二进制是基数为 2 的计数系统,只使用 0 和 ...