Longest Common Prefix 问题简介: 编写一个函数来查找字符串数组中最长的公共前缀字符串,如果没有公共前缀,则返回空字符串"" 举例: 1: 输入: [“xwq”,“xwqe”,“xwqr”] 输出: “xwq” 2: 输入: [“zxc”,“asd”,“qwe”] 输出: “” 解法一: 先将字符串数组中索引为0即第一个字符串作为最长前缀,遍历所有字符串,用indexOf()方法比较,当前字符串不包含前缀时就将最长前缀长度减一,直到为0 解法二: 另一种思路是不直接…
编写一个函数来查找字符串数组中最长的公共前缀字符串. 详见:https://leetcode.com/problems/longest-common-prefix/description/ 实现语言:Java class Solution { public String longestCommonPrefix(String[] strs) { if(strs==null||strs.length==0){ return ""; } String res=new String(); fo…
Swap Nodes in Pairs 问题简介:给定链表,交换每两个相邻节点并返回链表. 举例: 输入:1->2->3->4 输出:2->1->4->3 链表结构: 解法一: 定义一个头节点的引用,然后遍历链表,当下一个节点存在时,每两个节点的数值交换 复杂度分析: 时间复杂度:o(n)遍历一遍链表长度 空间复杂度:o(1)占用的空间为定值 小白刷题之路,请多指教— — 要么大器晚成,要么石沉大海…
求字符串数组中最大长度的字符串: 实质就是比较字符串的长度: 方案一: class Program { static void Main(string[] args) { string[] array = {"张三","亲,今天购物了么!","明天你喜欢很久的人要结婚了,你怎么办!","老鼠爱上了猫!","明天会下雪吧!"}; string str= GetLength(array); Console.Wr…
// 面试题56(二):数组中唯一只出现一次的数字 // 题目:在一个数组中除了一个数字只出现一次之外,其他数字都出现了三次.请 // 找出那个吃出现一次的数字. #include <iostream> int FindNumberAppearingOnce(int numbers[], int length) { )//边界判断 throw new std::exception("Invalid input."); ] = { };//开辟一个32长的辅助空间 ; i &…
// 面试题56(一):数组中只出现一次的两个数字 // 题目:一个整型数组里除了两个数字之外,其他的数字都出现了两次.请写程序 // 找出这两个只出现一次的数字.要求时间复杂度是O(n),空间复杂度是O(1). #include <iostream> unsigned int FindFirstBitIs1(int num); bool IsBit1(int num, unsigned int indexBit); void FindNumsAppearOnce(int data[], in…
// 面试题39:数组中出现次数超过一半的数字 // 题目:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字.例 // 如输入一个长度为9的数组{1, 2, 3, 2, 2, 2, 5, 4, 2}.由于数字2在数组中 // 出现了5次,超过数组长度的一半,因此输出2. #include <iostream> using namespace std; /*Random Partition*/ int RandomInRange(int min, int max) { ) + min…
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { private: int res = INT_MIN; int getMax(TreeNode* r) { if(r ==…
class Solution { public: int quick_sort_version(vector<int>& nums, int k,int begin,int end,int len) { ) return nums[begin];//这里有点小意外,本来写的是nums[0],这是不对的,比如案例[1,2],k=1 int res_beg=begin,res_end=end;//快排 bool flag=true; while(res_beg!=res_end) { if…
原文:经典算法题每日演练--第十四题 Prim算法 图论在数据结构中是非常有趣而复杂的,作为web码农的我,在实际开发中一直没有找到它的使用场景,不像树那样的频繁使用,不过还是准备 仔细的把图论全部过一遍. 一:最小生成树 图中有一个好玩的东西叫做生成树,就是用边来把所有的顶点联通起来,前提条件是最后形成的联通图中不能存在回路,所以就形成这样一个 推理:假设图中的顶点有n个,则生成树的边有n-1条,多一条会存在回路,少一路则不能把所有顶点联通起来,如果非要在图中加上权重,则生成树 中权重最小的叫…