Yes, you can have people sign offline, gather all the signatures together and send them as part of the data section of a single transaction and have the contract check the number of valid signatures. This should save you gas, and it will often allow for a simpler contract.
See this example of a multisig wallet that works like this:
https://medium.com/@ChrisLundkvist/exploring-simpler-ethereum-multisig-contracts-b71020c19037
However, do bear in mind that each signature you add will increase the gas cost of the transaction that sends them, and the total gas you can use in a single transaction is limited by the block gas limit, which may change. So if the number of signatures that may be required is high or unbounded, you may still need to write the contract so that the signatures can be split across multiple transactions.