随笔分类 - 剑指offer
摘要:这个题目考察的是计算机基础知识。注意int型的-1在计算机中的二进制存储为补码0xFFFF FFFF,但是计算机在展示给我们的时候,是作为原码展示。 C++版 #include <iostream> using namespace std; int NumberOf1Plus(int n){ int
阅读全文
摘要:本题考察的是动态规划与贪心算法,有一个疑问,为何i<4时,products[i]=i。 C++版本 #include <iostream> #include <vector> using namespace std; // 动态规划 int maxProductAfterCutting_soluti
阅读全文
摘要:本题考察的是回溯算法,可以使用DFS解决问题。 C++版本 #include <iostream> #include <vector> using namespace std; int getDigitSum(int num){ int sum = 0; while(num > 0){ sum +=
阅读全文
摘要:本题考察的是回溯算法,注意C/C++里面可以定义变量长度的数组,比如int a = 3;int b = 3;int c[a*b];。但是如果定义为bool *visited = new bool[rows*cols],就是类的类型,是不能用memset(visited, false, sizeof(
阅读全文
摘要:本题考察的是查找,需要注意的是数组中有相同数字的特例,如果不能很好地处理这些特例,就很难写出让人满意的完美代码。 C++版本 #include <iostream> #include <vector> using namespace std; int minInOrder(vector<int> r
阅读全文
摘要:这个题目需要注意,其实就是斐波那契数列。 Java版本 package zr.test; /** * @author ZR * @Classname Num_10_2 * @Description 青蛙跳台阶 * @Date 2020/7/16 17:00 */ public class Num_1
阅读全文
摘要:这个题目需要注意,不适用递归,使用循环写代码。Java真的比C慢太多。。。 Java版本 package zr.test; /** * @author ZR * @Classname Num_10 * @Description TODO * @Date 2020/7/15 16:42 */ publ
阅读全文
摘要:这个题目需要注意,使用语言自带的stack函数实现,所以栈的大小是不用我们考虑的,但可以思考一下,加入需要我们自己实现栈,那么栈的大小就会是一个问题:当往stack1插入元素至stack1栈满时,这个时候怎么操作? Java版本 package com.zr.test; import java.ut
阅读全文
摘要:Java版本: public class TreeNode { int val; TreeNode left; TreeNode right; public TreeNode(int val) { // TODO Auto-generated constructor stub this.val =
阅读全文
摘要:输入一个链表的头结点,从尾到头反过来打印出每个结点的值。 C++版本 #include<iostream> #include <stack> struct ListNode { int m_nValue; ListNode* m_pNext; }; ListNode* CreateListNode(
阅读全文
摘要:请实现一个函数,把字符串中的每个空格替换成"%20"。例如输入“We are happy.”,则输出“We%20are%20happy.”。 C++版本 // // 《剑指Offer——名企面试官精讲典型编程题》代码 // 作者:何海涛 // // 面试题5:替换空格 // 题目:请实现一个函数,把
阅读全文
摘要:Java版本: 面试题4:二维数组中的查找题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 package com.zr.test; /** * * @Description
阅读全文
摘要:面试题3(二):不修改数组找出重复的数字题目:在一个长度为n+1的数组里的所有数字都在1到n的范围内,所以数组中至少有一个数字是重复的。请找出数组中任意一个重复的数字,但不能修改输入的数组。例如,如果输入长度为8的数组{2, 3, 5, 4, 3, 2, 6, 7},那么对应的输出是重复的数字2或者
阅读全文
摘要:题目:在一个长度为n的数组里的所有数字都在0到n-1的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。例如,如果输入长度为7的数组{2, 3, 1, 0, 2, 5, 3},那么对应的输出是重复的数字2或者3。 这个题目有三种方法
阅读全文