首页 » 软件开发 » 程序员进阶之路必刷的68道算法题(面试题数字数组链表组中)

程序员进阶之路必刷的68道算法题(面试题数字数组链表组中)

落叶飘零 2024-07-24 04:19:59 0

扫一扫用手机浏览

文章目录 [+]

文章目录

基础知识

数据结构

程序员进阶之路必刷的68道算法题(面试题数字数组链表组中) 软件开发
(图片来自网络侵删)

面试题03.数组中重复的数字

面试题04.二维数组中的查找

面试题05.替换空格

面试题06.从尾到头打印链表

面试题07.重建二叉树

面试题09.用两个栈实现队列

算法与数据操作

面试题10-I.斐波那契数列

面试题11.旋转数组的最小数字

面试题12.矩阵中的路径

面试题13.机器人的运动范围

面试题14-I.剪绳子

面试题15.二进制中1的个数

高质量的代码

代码完整性

面试题16.数值的整数次方

面试题17.打印从1到最大的n位数

面试题18.删除链表的节点

面试题19.正则表达式匹配

面试题20.表示数值的字符串

面试题21.调整数组顺序使奇数位于偶数前面

代码的鲁棒性

面试题22.链表中倒数第k个节点

面试题23.链表中环的入口节点(环形链表II)

面试题24.反转链表

面试题25.合并两个排序的链表

面试题26.树的子结构

解决面试题的思路

画图让抽象问题具体化

面试题27.二叉树的镜像

面试题28.对称的二叉树

面试题29.顺时针打印矩阵

举例让抽象问题具体化

面试题30.包含min函数的栈

面试题31.栈的压入、弹出序列

面试题32-III.从上到下打印二叉树III

面试题33.二叉搜索树的后序遍历序列

面试题34.二叉树中和为某一值的路径

分解让复杂问题简单化

面试题35.复杂链表的复制

面试题36.二叉搜索树与双向链表

面试题37.序列化二叉树

面试题38.字符串的排列

优化时间和空间效率

时间效率

面试题39.数组中出现次数超过一半的数字

面试题40.最小的k个数

面试题41.数据流中的中位数

面试题42.连续子数组的最大和

面试题43.1~n整数中1出现的次数

面试题44.数字序列中某一位的数字

面试题45.把数组排成最小的数

面试题46.把数字翻译成字符串

面试题47.礼物的最大价值

面试题48.最长不含重复字符的子字符串

时间效率额空间效率的平衡

面试题49.丑数

面试题50.第一个只出现一次的字符

面试题51.数组中的逆序对

面试题52.两个链表的第一个公共节点

面试中的各项能力

知识迁移能力

面试题53-I.在排序数组中查找数字I

面试题53-II.0~n-1中缺失的数字

面试题54.二叉搜索树的第k大节点

面试题55-I.二叉树的深度

面试题55-II.平衡二叉树

面试题56-I.数组中数字出现的次数

面试题56-II.数组中数字出现的次数II

面试题57.和为s的两个数字

面试题57-II.和为s的连续正数序列

面试题58-I.翻转单词顺序

面试题58-II.左旋转字符串

面试题59-I.滑动窗口的最大值

面试题59-II.队列的最大值

抽象建模能力

面试题60.n个骰子的点数

面试题61.扑克牌中的顺子

面试题62.圆圈中最后剩下的数字

面试题63.股票的最大利润

发散思维能力

面试题64.求1+2+…+n

面试题65.不用加减乘除做加法

面试题66.构建乘积数组

面试题67.把字符串转换成整数

面试题68-I.二叉搜索树的最近公共祖先

面试题68-II.二叉树的最近公共祖先

基础知识数据结构面试题03.数组中重复的数字

空间优先:原地排序法遍历数组,将遍历的数试探放入值正确位置,如果正确位置已经有过正确数了,且不是当前位置,说明发现了重复数了,退出如果正确位置不是正确值,将正确值交换到正确位置(93%,100%)

class Solution { public int findRepeatNumber(int[] nums) { for (int i = 0; i < nums.length; i++) { int n = nums[i]; //try if (n == nums[n] && n != i) return n; //swap int tmp = nums[i]; nums[i] = nums[n]; nums[n] = tmp; } //not find return -1; }}

时间优先:字典用两个字节的boolean 的数组,占用空间小

class Solution { public int findRepeatNumber(int[] nums) { boolean compare[] = new boolean[nums.length]; for (int i = 0; i < nums.length; i++) { if (compare[nums[i]]) return nums[i]; compare[nums[i]] = true; } return -1; }}面试题04.二维数组中的查找

从左下或者右上为起点的查找:查找状态树是BST(双100%)

class Solution { public boolean findNumberIn2DArray(int[][] matrix, int target) { if (matrix == null || matrix.length == 0 || matrix[0].length == 0) return false; int m = matrix.length; int n = matrix[0].length; int row = 0; int col = n - 1; while (row < m && col >= 0) { if (target == matrix[row][col]) return true; else if (target > matrix[row][col]) row++; else col--; } return false; }}

篇幅有限,以上算法题详解:三连后 私 555

原文出处:https://blog.csdn.net/qq_41170102/article/details/

标签:

相关文章

语言中的借用,文化交融的桥梁

自古以来,人类社会的交流与发展离不开语言的传播。在漫长的历史长河中,各民族、各地区之间的文化相互碰撞、交融,产生了许多独特的语言现...

软件开发 2025-01-01 阅读1 评论0

机顶盒协议,守护数字生活的新卫士

随着科技的飞速发展,数字家庭逐渐走进千家万户。在这个时代,机顶盒成为了连接我们与丰富多彩的数字世界的重要桥梁。而机顶盒协议,作为保...

软件开发 2025-01-01 阅读1 评论0

语言基础在现代社会的重要性及方法步骤

语言是人类沟通的桥梁,是社会发展的基础。语言基础作为语言学习的基石,对于个人、社会乃至国家的发展具有重要意义。本文将从语言基础在现...

软件开发 2025-01-01 阅读2 评论0

粤语电影,传承文化,点亮时代之光

粤语电影,作为中国电影产业的一朵奇葩,以其独特的地域特色、丰富的文化内涵和鲜明的艺术风格,赢得了广大观众的喜爱。本文将从粤语电影的...

软件开发 2025-01-01 阅读3 评论0

苹果游戏语言,塑造未来娱乐体验的基石

随着科技的飞速发展,游戏产业逐渐成为全球娱乐市场的重要支柱。在我国,游戏产业更是蓬勃发展,吸引了无数玩家和投资者的目光。而在这其中...

软件开发 2025-01-01 阅读1 评论0