剑指offer部分题目整理

来源:互联网 发布:香蕉网络电视免费 编辑:程序博客网 时间:2024/05/21 09:28

以下为本人做t归整的个人觉得比较易懂的代码

#include <list>#include <vector>#include <iostream>#include <map>#include <stack>using namespace std;struct ListNode {    int val;    struct ListNode *next;    ListNode(int x) :        val(x), next(NULL) {    }};class Solution {public:    bool Find(int target, vector<vector<int> > array) {/*二维数组查找*/        map<int, bool>mp;        for (int i = 0;i < array.size();i++)        {            for (int j = 0;j < array[i].size();j++)            {                mp[array[i][j]] = true;            }        }        return mp.find(target) != mp.end();    }    vector<int> printListFromTailToHead(ListNode* head) /*尾头打印链表*/    {        vector<int> res;        stack<int> s;        if (head == NULL)            return res;        ListNode* p = head;        while (p != NULL) {            s.push(p->val);            p = p->next;        }        while (!s.empty()) {            res.push_back(s.top());            s.pop();        }        return res;    }};int main(){    Solution s1;    /*vector<vector<int> > a(2,vector<int>(2));    a[0][0] = 1;    a[0][1] = 2;    a[1][0] = 3;    a[1][1] = 4;*/    //cout << s1.Find(4, a)<<endl;    /*ListNode L1(0);    ListNode L2(5);    ListNode L3(6);    L1.next = &L2;    L2.next = &L3;    vector<int> a = s1.printListFromTailToHead(&L1);    for (int i=0;i<a.size();i++)    {        cout << a[i] << " ";    }*/    getchar();    return 0;}