java算法题问题(一)

1、给出 2 * n + 1个数字,除其中一个数字之外其他每个数字均出现两次,找到这个数字。

2、给一个整数数组,找到两个数使得他们的和等于一个给定的数 target。
需要实现的函数twoSum需要返回这两个数的下标, 并且第一个下标小于第二个下标。注意这里下标的范围是 0 到 n-1。
注:可以假设只有一组答案。

3、给定一个字符串(以字符数组的形式给出)和一个偏移量,根据偏移量原地旋转字符串(从左向右旋转)(字符串长度大于0,偏移量大于0)
样例:
输入: str=“abcdefg”, offset = 3
输出: str = “efgabcd”
样例解释: 注意是原地旋转,即str旋转后为"efgabcd"
输入: str=“abcdefg”, offset = 0
输出: str = “abcdefg”
样例解释: 注意是原地旋转,即str旋转后为"abcdefg"
输入: str=“abcdefg”, offset = 10
输出: str = “efgabcd”
样例解释: 注意是原地旋转,即str旋转后为"efgabcd"

4、 水仙花数的定义是,这个数等于他每一位上数的幂次之和
比如一个3位的十进制整数153就是一个水仙花数。因为 153 = 13 + 53 + 33。
而一个4位的十进制数1634也是一个水仙花数,因为 1634 = 14 + 64 + 34 + 44。
给出n,找到所有的n位十进制水仙花数。可以认为n小于8

5、一个整数n. 从 1 到 n 按照下面的规则打印每个数:
如果这个数被3整除,打印fizz.
如果这个数被5整除,打印buzz.
如果这个数能同时被3和5整除,打印fizz buzz.
如果这个数既不能被 3 整除也不能被 5 整除,打印数字本身。
比如 n = 15, 返回一个字符串数组:
[“1”, “2”, “fizz”,“4”, “buzz”, “fizz”,“7”, “8”, “fizz”,“buzz”, “11”, “fizz”,“13”, “14”, “fizz buzz” ]
进阶:只使用一个if来完成

6、给出两个整数 a 和 b , 求他们的和(不使用±*/等算数运算符)

7、给出两个数字 A 和 B,找出 A 与 B 之间所有的数(包括 A 和 B),使得这些数满足是 3 的倍数,返回这些数的和。

8、实现一个算法确定字符串中的字符是否均唯一出现

9、给定一个字符串,逐个翻转字符串中的每个单词。

10、给出一个字符串,找出第一个只出现一次的字符。

11、请判断字符串 str 是不是一个合法的标识符。合法的标识符由字母(A-Z,a-z)、数字(0-9)和下划线组成,并且首字符不能为数字。

12、给一个整数数组,去除重复的元素。要求:
1.在原数组上操作
2.将去除重复之后的元素放在数组的开头
3.返回去除重复元素之后的元素个数

13、给定一系列的会议时间间隔,包括起始和结束时间[[s1,e1],[s2,e2],…(si < ei),确定一个人是否可以参加所有会议。

14、给定一个不重复有序数组和一个目标值,如果在数组中找到目标值则返回索引。如果没有,返回到它将会被按顺序插入的位置。

15、给定 n 个学生的学号(从 1 到 n 编号)以及他们的考试成绩,表示为(学号,考试成绩),请将这些学生按考试成绩降序排序,若考试成绩相同,则按学号升序排序。

16、对整数数组进行升序排序

17、有 n 道可选的题可以做,每一题都有特定的忧郁值,你会从中选择 k 题。如果这 k 题的忧郁值总和大于等于 m,那么你就会感到忧郁,反之,你就感受不到忧郁。
那么,请问,有没有可能你做完 k 题之后感受不到忧郁?
如果可能,返回 yes。
如果不可能,即你一定会感到忧郁,那么返回 no。(即给定一个n个数的数组,任选k个数求和,如果存在和小于m的情况,返回yes,不存在这样的情况,即最小的k个数和仍大于等于m,则返回no)

18、给出一个链表,并将链表的值以倒序存储到数组中。要求:不能改变原始链表的结构

19、找链表的中点。如果长度是偶数,则返回中间偏左的节点的值

20、在链表中按值插入一个节点。

21、计算链表中有多少个节点

22、删除链表中的第n到m个节点

23、给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的距离

24、给出一棵二叉树,返回其中序遍历

25、给一棵二叉树,找出从根节点到叶子节点的所有路径

26、给出一棵二叉树,返回其节点数

27、给定 n 个整数和一个整数 k, 从中选择 k 个整数, 现在,要求计算出k个数和为素数共有多少种方案

28、给出一个有n个整数的数组S,在S中找到三个整数a, b, c,找到所有使得a + b + c = 0的三元组。要求a <= b <= c。结果不能包含重复的三元组。

29、反转链表

30、找到链表中间结点

31、判断一个单向链表是否有环的存在

32、删除链表倒数第k个结点

33、两个升序链表的合并

你可能感兴趣的:(数据结构与算法)