When people want to know the most minimal way of executing PLL, I always give them 2 algorithms.
1) To solve corners, use the T-permutation ((R U R' U') (R' F) (R2 U') (R' U' R U) (R' F'))
Look at all 4 sides and see if any side has 2 corners of the same color... for example, you might see that on the green side of the cube, both of the corners are orange. So, rotate the upper face so that those 2 orange pieces are on the orange side (ie, solve them). Then either 2 things can happen: (1) The other 2 corners on the top face will need to be switched, which the T-permutation will do (just hold the cube such that the 2 corners needing switching are on the right side, on the top).) OR (2) All 4 corners will be solved already.
If there are no 2 corners of the same color on any side, execute a T-permutation and then there will be. Then, one more T-perm will fix the remaining 2 corners.
2) To solve the edges, use a 3-cycle. ((R2 U) (R U R' U') (R' U') (R' U R'))
This rotates the front 3 edges (ie, the back one remains in place) clockwise. If these 3 pieces need to be rotated counter-clockwise, execute the algorithm twice (or you could do the inverse, but this is just easier for a minimalistic solution).
If all 4 edges are wrong, execute the 3-cycle above, and the result will be that you are now one more 3-cycle from being solved... so follow the above directions.
David